在es5中,處理true == 1 和 false == 0 的判斷流程是這樣的:es5
好比比較 true == '1',過程以下:spa
先將true 轉換爲number,ToNumber(true) == '1'字符串
==> 1 == '1' get
再將string 類型轉換爲數字,1 == ToNumber('1')string
==> 1 == 1io
==> trueim
ToNumber 是ES5中的一個abstract operation,以下圖:img
同理,false == '0',類型轉換
==> ToNumber(false) == '0'co
==> 0 == '0'
==> 0 == 0
==> true
不過須要注意一下,== 只是判斷值相等,若是修改成 true === '1' 或者 true === 1 則都爲false,由於===是判斷值和類型都相等