3 回答

TA貢獻1816條經(jīng)驗 獲得超4個贊
if (arr)
if (arr == false)
false
arr.toString()
""
.
toString
Array.join()

TA貢獻2080條經(jīng)驗 獲得超4個贊
if (arr == false) console.log("It's false!");
console.log(0 == false) // trueconsole.log([] == 0) // trueconsole.log([] == "") // true
false
0
0
== 0
true
.
編輯:
1.如果類型(X)與類型(Y)不同,則轉到步驟14。
19.如果類型(Y)是布爾型,則返回比較x=ToNumber(Y)的結果。
ToNumber(false)
0
[] == 0
21.如果Type(X)是Object,Type(Y)是字符串或數(shù)字,則返回比較ToPrimitive(X)=y的結果。
ToPrimitive([])
"" == 0
17.如果Type(X)是String,Type(Y)是Number,則返回比較ToNumber(X)=y的結果。
ToNumber("")
0
0 == 0
7.如果x是與y相同的數(shù)字值,則返回true。
true
.
ToNumber(ToPrimitive([])) == ToNumber(false)

TA貢獻1802條經(jīng)驗 獲得超6個贊
ToPrimitive([])
""
對象的默認值是通過調用對象的[DefaultValue]內部方法來檢索的,并傳遞可選的提示PreferredType。
[[DefaultValue]]
[[DefaultValue]]
toString()
valueOf()
toString()
valueOf()
valueOf()
[[DefaultValue]]
toString()
valueOf()
valueOf()
valueOf()
Array
. [].valueOf()
[]
Array
[[DefaultValue]]
toString()
.
此對象到數(shù)字轉換的詳細信息解釋了為什么空數(shù)組轉換為數(shù)字0,以及為什么具有單個元素的數(shù)組也可以轉換為數(shù)字。數(shù)組繼承了返回對象而不是原始值的默認值()方法,因此數(shù)組到數(shù)字的轉換依賴于toString()方法??諗?shù)組轉換為空字符串??兆址D換為數(shù)字0。具有單個元素的數(shù)組將轉換為與一個元素相同的字符串。如果數(shù)組包含單個數(shù)字,則將該數(shù)字轉換為字符串,然后返回到數(shù)字。
Array.valueOf()
toString()
var a = [17], b = 17, c=1;console.log(a==b); // <= trueconsole.log(a==c); // <= false
添加回答
舉報