84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
今天居然看到的typeof的回傳結果居然是整數。還有圖中results的結果為什麼是1.
1、因為typeof優先權較高2、還是因為加法運算子優先權較高
typeof
var a=true; console.log(a);//返回true console.log(typeof a);//返回boolean console.log(typeof(typeof a));//返回"string"
實質上typeof a ? 1 : 2可以寫成這樣:
"boolean" ? 1:2
而這個三元表達式呼叫Boolean()對字串進行型別轉換,即:Boolean("boolean") ====>true所以回傳是1。 你可以試試將a賦值為false,回傳還是1:
var a=false; typeof a ? 1 : 2
這段語句是這麼編譯的(typeof a)? 1 : 2編譯的時候,換成了這種形式,就是這個結果。三元運算符
(typeof a)? 1 : 2
沒毛病
Boolean('string') => true
接你的例子,三元運算符,當typeof a 為true時,回傳的是 1,typeof a 為false的時候,回傳的是2。 前面100 + a;進行了型別轉換,所以100 + a = 101,所以results 也回傳1
1、因為
typeof
優先權較高2、還是因為加法運算子優先權較高
實質上typeof a ? 1 : 2可以寫成這樣:
而這個三元表達式呼叫Boolean()對字串進行型別轉換,即:
Boolean("boolean") ====>true
所以回傳是1。
你可以試試將a賦值為false,回傳還是1:
這段語句是這麼編譯的
(typeof a)? 1 : 2
編譯的時候,換成了這種形式,就是這個結果。三元運算符
沒毛病
接你的例子,
三元運算符,當typeof a 為true時,回傳的是 1,
typeof a 為false的時候,回傳的是2。
前面100 + a;進行了型別轉換,所以100 + a = 101,
所以results 也回傳1