【詳解】JavaScript面試題大坑:隱式型別轉換!
阿新 • • 發佈:2020-10-17
黑馬程式設計師視訊庫
播妞微訊號:heiniu526
傳智播客旗下網際網路資訊、學習資源免費分享平臺
隱式轉換介紹
在js中,當運算子在運算時,如果兩邊資料不統一,CPU就無法計算,這時我們編譯器會自動將運算子兩邊的資料做一個數據型別轉換,轉成一樣的資料型別再計算。這種無需程式設計師手動轉換,而由編譯器自動轉換的方式就稱為隱式轉換。
例如1 > "0"這行程式碼在js中並不會報錯,編譯器在運算子時會先把右邊的"0"轉成數字0`然後在比較大小
隱式轉換規則
1. 轉成string型別:+(字串連線符) 2..轉成number型別:++/--(自增自減運算子) + - * / %(算術運算子) > < >= <= == != === !=== (關係運算符)
2. 轉成boolean型別:!(邏輯非運算子)
坑一:字串連線符與算術運算子隱式轉換規則混淆
常見面試題如下:
原理分析
坑二:關係運算符:會把其他資料型別轉換成number之後再比較關係
常見面試題如下:
原理分析:
坑三:複雜資料型別在隱式轉換時會先轉成String,然後再轉成Number運算
原理分析:
坑四:邏輯非隱式轉換與關係運算符隱式轉換搞混淆
前方高能,請注意~
空陣列的toString()方法會得到空字串,而空物件的toString()方法會得到字串`[object Object]` (注意第一個小寫o,第二個大寫O喲)。
常見面試題:
原理分析:
大家學會了嗎?
關注黑馬程式設計師視訊庫
更多知識在等你
END
重磅!華為鴻蒙OS 2.0 釋出,開放原始碼!關注已達4.7k
點選“在看” 為播妞加雞腿