js隱式轉換
阿新 • • 發佈:2022-03-22
<script> //個人感覺是兩邊都呼叫了Number console.log(true == 1); // 1==1 ---- true console.log(true == '1'); // 1==1 ----true console.log(1 == '2'); // 1==2 ---- false console.log('a' == 1); // NaN==1 ---- false console.log(true == 'true'); // 1==NaN ---- false console.log(true == 'false'); // 1==NaN ---- false console.log('----------------------------------------------------'); //物件之間比較地址值 console.log([] == []); //false console.log([] == {}); //false console.log([] === []); //false console.log({} === {}); //false console.log([] !== []); //true console.log({} !== {}); //true console.log('----------------------------------------------------'); //如果一個運算元是物件,另一個運算元不是,則呼叫物件的toString()方法 //下面的比較步驟: // []==false // [].toString()==false // "" == false console.log([] == ![]); //true //下面的比較步驟: // {}==false // {}.toString==false // "[object Object]"==false // NaN==false console.log({} == !{}); //false console.log(0 == '0'); //true //下面的比較步驟: // 0==[].toString() // 0=="" // 0==Number('') // 0==0 console.log(0 == []); //true //下面的比較步驟: // "0" == [].toString() // "0" == "" console.log("0" == []); //false </script>