關於隱士型別轉化的問題
阿新 • • 發佈:2018-12-17
一: 求表示式 ! + [ ] + [ ] + ! [ ] 的值是多少;
! [ ] ! 後轉化成boolean,先[ ].toString() => 空串; 再將空串轉boolean 為false,最終true;
+ [ ] 加號兩邊不是字串或數字,會將兩邊變成字串或數字,因為前面沒有,預設轉成數字,[ ]轉後是0;
+ 如果前面有字串,轉化成字串
轉化成是 ! 0 + ' ' + !false
優先順序: !高於+;
+運算兩邊的轉化問題:字串有先; 不同型別一旦一方有字串 ,則另一方轉化成字串,如果沒有字串,則雙方都轉化成數字3 + [ ];
引用值轉化成原始值自動呼叫自身的toString方法; [1, 2, 3].toString() ==> '1, 2, 3' { }.toString( ) ==> "[object Object]"
二: 求表示式 [ ] == false 的值是多少// true; if( [ ]) { console.log(111) } 能輸出嗎?//能;為什麼是false還能列印呢?
== 兩邊的值有引用值時候,先把引用值轉化成原始值,
== 兩邊的資料型別不一致時候,都要轉化成number型別