2017前端筆試題解析

1.代碼輸出題:
var x = [0];
if([0]){
 console.log(x==true);
}else{
 console.log("false");;
}
考點:隱式轉換
解析:此題涉及兩次隱式轉換,第一次是在if中默認使用Boolean轉換,第二次是在==時發生了雙
等的隱式轉換。首先明確Boolean的轉換規則:①字符串時除空字符串以外其他都轉換爲true②數字
類型時除0其他都轉換爲true③對象時除了null其他都轉換爲true④undefined轉換爲false。故程序
會進入第一個if條件中,而後發生了==的隱式轉換。轉換規則以下:①若是一個運算數是 Boolean 
值,在檢查相等性以前,把它轉換成數字值。false 轉換成 0,true 爲 1。②若是一個運算數是對
象,另外一個是數字,在檢查相等性以前,要嘗試把對象轉換成數字。故按照如上規則會先true
轉換爲1,而後會將[0]轉換成0,故二者不相等返回false
相關文章
相關標籤/搜索