原因:如上圖很疑惑這樣能判斷通過。
後來查閱資料是因為js中的隱式轉換的問題;
js原始型別包含:string
、number
、boolean
、null
、undefined
、symbol
js的物件型別包含:object
隱式轉換概念:
1.undefined與null相等,但不恒等(===)
2.乙個是number乙個是string時,會嘗試將string轉換為number
3.隱式轉換將boolean轉換為number,0或1
4.隱式轉換將object轉換成number或string,取決於另外乙個對比量的型別
5.對於0、空字串的判斷,建議使用 「===」 。
6.「==」會對不同型別值進行型別轉換再判斷,「===」則不會。它會先判斷兩邊的值型別,型別不匹配時直接為false。
隱式轉換中主要是三種轉換方式:
總結:
preferredtype
沒有設定時,date
型別的物件,preferredtype
預設設定為string
,其他型別物件preferredtype
預設設定為number
。
js 隱式轉換
1.數字number與字串string相加的就,最後會得到乙個字串string 1 3 13 2.數字number與字串string相減,最後會得到乙個數字number 1 0 1,s 0 nan 3.數字number與字串string相乘 最後會得到乙個數字number 1 10 10,s 10 ...
js隱式轉換
js基礎資料型別 string number boolean null undefined symbol 當運算子在運算時,如果運算子兩邊的資料型別不一致,那麼cpu就無法進行計算。js的編輯器會自動將運算子兩邊的資料轉換為同一型別,從而讓計算機識別並可以進行計算,這一轉換過程由編譯器自動自行,不需...
js 隱式轉換
其它型別轉換成布林型別 1.未聲名的變數名 undefined false 2.變數名為 null 為空 null false 3.number 0 0.0 0 0 nan false 4.空字串 false 5.其它物件 true 1 其它型別轉換為數值型 number 1.undefined n...