對比javascript和PHP中的==比較符
阿新 • • 發佈:2018-12-17
最近PHP編碼時使用到==
比較符,發現和JS有一些差別,做記錄防止混餚。
先看PHP中的例子:
$a=0;
$b='0str';
$c='1str';
if($a==$b){
echo true;
}else{
echo false;
}
if($a==$c){
echo true;
}else{
echo false;
}
輸出結果分別是true
和false
,原因是PHP將字串轉換為數值型別時可以將前面的數值部分(必須數字打頭)提取出來當作轉化結果,所以0str
被轉化為0
,1str
被轉化為1
。
如果在javascript中,則有所不同了。看例子:
const a=0;
const b="0str";
const c="1str";
const d=1;
const e=123;
const f="123";
a==b ? console.log(true) : console.log(false);
a==c ? console.log(true) : console.log(false);
c==d ? console.log(true) : console.log(false);
e==f ? console.log(true) : console.log(false);
輸出結果則是false
|false
|false
|true
,js在字串轉換為數值的時候,把其當作一個整體,不會進行類似parseInt
0str
和1str
轉化的值都是NaN
。因此第一行輸出false。
雖然不同語言之間用法不同沒必要大驚小怪,但是對於經常使用這兩種開發語言的人,這種細節還是稍加註意的好。