前言
今天突然想起一個(gè)奇怪的問題,記錄一下扒寄,我在控制臺(tái)執(zhí)行內(nèi)容如下:
由上圖可見谓形,2 != false
和 2 != true
返回的值竟然都是true
钉跷,那么為什么呢弥鹦,請(qǐng)看下文:
1 !=
操作符的作用
!=
是“不等于”操作符。它會(huì)在比較前執(zhí)行類型轉(zhuǎn)換爷辙,然后再比較兩個(gè)值是否不相等彬坏。
在 JavaScript 中,2 != false
和 2 != true
返回 true
的原因涉及到 JavaScript 中的類型轉(zhuǎn)換和比較規(guī)則膝晾。
2 類型轉(zhuǎn)換
當(dāng)使用 !=
進(jìn)行比較時(shí)栓始,JavaScript 會(huì)嘗試將比較的兩個(gè)值轉(zhuǎn)換為相同的類型,然后再進(jìn)行比較血当。以下是 2 != false
和 2 != true
的過程:
2 != false
false
會(huì)被轉(zhuǎn)換為數(shù)字類型幻赚。根據(jù) JavaScript 的轉(zhuǎn)換規(guī)則,false
被轉(zhuǎn)換為 0
臊旭。2 != 0
落恼。2
和 0
不相等,因此返回 true
离熏。2 != true
true
會(huì)被轉(zhuǎn)換為數(shù)字類型佳谦。根據(jù) JavaScript 的轉(zhuǎn)換規(guī)則,true
被轉(zhuǎn)換為 1
滋戳。2 != 1
钻蔑。2
和 1
不相等,因此返回 true
奸鸯。總結(jié)
2 != false
返回 true
是因?yàn)?2
和 0
不相等咪笑。2 != true
返回 true
是因?yàn)?2
和 1
不相等。這就是為什么 2 != false
和 2 != true
都會(huì)返回 true
娄涩。