javascript - 關於js的typeof的疑問
学习ing
学习ing 2017-06-15 09:23:38
0
5
775

今天居然看到的typeof的回傳結果居然是整數。還有圖中results的結果為什麼是1.

#
学习ing
学习ing

全部回覆(5)
Peter_Zhu

1、因為typeof優先權較高
2、還是因為加法運算子優先權較高

大家讲道理
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
編譯的時候,換成了這種形式,就是這個結果。三元運算符

学习ing

沒毛病

Boolean('string') => true
伊谢尔伦

接你的例子,
三元運算符,當typeof a 為true時,回傳的是 1,
typeof a 為false的時候,回傳的是2。
前面100 + a;進行了型別轉換,所以100 + a = 101,
所以results 也回傳1

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板