原文:https://blog.csdn.net/itcast_cn/article/details/82887895 程序員
· 1.1 隱式轉換介紹面試
· 1.2 隱式轉換規則數組
· 1.3 坑一:字符串鏈接符與算術運算符隱式轉換規則混淆spa
· 1.4 坑二:關係運算符:會把其餘數據類型轉換成number以後再比較關係.net
· 1.5 坑三:複雜數據類型在隱式轉換時會先轉成String,而後再轉成Number運算3d
· 1.6-坑四:邏輯非隱式轉換與關係運算符隱式轉換搞混淆對象
1.1-隱式轉換介紹blog
· 在js中,當運算符在運算時,若是兩邊數據不統一,CPU就沒法計算,這時咱們編譯器會自動將運算符兩邊的數據作一個數據類型轉換,轉成同樣的數據類型再計算。ip
o 這種無需程序員手動轉換,而由編譯器自動轉換的方式就稱爲隱式轉換字符串
· 例如1 > "0"這行代碼在js中並不會報錯,編譯器在運算符時會先把右邊的"0"轉成數字0`而後在比較大小
1.2-隱式轉換規則
1. 轉成string類型: +(字符串鏈接符)
2. 轉成number類型:++/--(自增自減運算符) + - * / %(算術運算符) > < >= <= == != === !=== (關係運算符)
3. 轉成boolean類型:!(邏輯非運算符)
1.3-坑一:字符串鏈接符與算術運算符隱式轉換規則混淆
· 常見面試題以下
· 原理分析
1.4-坑二:關係運算符:會把其餘數據類型轉換成number以後再比較關係
常見面試題以下
· 原理分析
1.5-坑三:複雜數據類型在隱式轉換時會先轉成String,而後再轉成Number運算
· 原理分析
1.6-坑四:邏輯非隱式轉換與關係運算符隱式轉換搞混淆
· 前方高能,請注意~
o 空數組的toString()方法會獲得空字符串,而空對象的toString()方法會獲得字符串`[object Object]` (注意第一個小寫o,第二個大寫O喲)
· 常見面試題
· 原理分析
附:JavaScript 真值表
在日常的習慣中,咱們應該儘量的使用 === 而不是 ==。同時,能夠選擇使用 typeof 或者 ts 來避免強制類型轉換的錯誤。
============== End