話不多說,上代碼
$a=0;
$b="test";
if($a==$b)
{
echo "true";
}
else
{
echo "false";
}
if($a===$b)
{
echo "true";
}
else
{
echo "false";
}
上面兩個判斷分別返回true和false,或許很多人會說這不是很簡單的判斷嗎?但是對於我來說卻是個很神奇的結果。。。
那麼爲什麼第一種判斷會返回true呢?
問問度娘,解釋如下:
1.==只是對值得比較(將兩邊值轉化爲同類型再比較),而===則是對值和類型的比較。
2.對於==的比較,若有一方爲數字,另一方爲字符串或空或null,均會先將非數字一方轉化爲0,再做比較。
接下來,我們再做個比較
$a=1;
$b="test";
if($a==$b)
{
echo "true";
}
else
{
echo "false";
}
此時結果爲false
區分完php中==和===的區別,我又想,在javascript中會不會是一樣的結果呢?
接下來我們再做個測試。以下是javascript代碼:
var a=0;
var b="test";
if(a==b)
{
console.log("true");
}
else
{
console.log("false");
}
var a=1;
var b="test";
if(a==b)
{
console.log("true");
}
else
{
console.log("false");
}
那麼上面的結果返回什麼呢?根據剛纔對php的結果,我的判斷是true和false,但是結果卻出乎意料,兩次結果都返回了false。
可見==比較符在javascript中和在php還是有點區別的,在javascript中數字和非數字的比較,非數字不會被轉化爲0,至於具體原因,還有待考究。希望哪位大神可以解答解答。
以上是本次內容。