大家讲道理2017-06-15 09:25:38
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
伊谢尔伦2017-06-15 09:25:38
接你的例子,
三元運算符,當typeof a 為true時,回傳的是 1,
typeof a 為false的時候,回傳的是2。
前面100 + a;進行了型別轉換,所以100 + a = 101,
所以results 也回傳1