1. 程式人生 > >對比javascript和PHP中的==比較符

對比javascript和PHP中的==比較符

最近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;
}

輸出結果分別是truefalse,原因是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

之類的操作。所以0str1str轉化的值都是NaN。因此第一行輸出false。

雖然不同語言之間用法不同沒必要大驚小怪,但是對於經常使用這兩種開發語言的人,這種細節還是稍加註意的好。