3 回答

婷婷同學_
TA貢獻1844條經驗 獲得超8個贊
> [1].toString() '1' > 1 == '1' true
==
若 Type(x) 為 Object 且 Type(y) 為 String 或 Number, 返回比較 ToPrimitive(x) == y 的結果。(說白了,==就是要降級比較)[鏈接]
ToPrimitive內部運算
不只是==,+法等運算符只能使用于原始數據類型,那么對于對象類型的值,就要轉換為原始數據類型。
在JS中所設計的Object純對象類型的valueOf與toString方法,它們的返回如下:
valueOf方法返回值: 對象本身。(所以ToPrimitive最后要返回toString的值了)
toString方法返回值: "[object Object]"字符串值,不同的內建對象的返回值是"[object type]"字符串,"type"指的是對象本身的類型識別,例如Math對象是返回"[object Math]"字符串。但有些內建對象因為覆蓋了這個方法,所以直接調用時不是這種值。(注意: 這個返回字符串的前面的"object"開頭英文是小寫,后面開頭英文是大寫)
總結
基本運算發(fā)生時 => 就需要變量轉化成基本類型 => 就需要依據基本類型間運算優(yōu)先法則統(tǒng)一轉化成一類基本類型 => 運算
注:
字符串 + 其他原始類型字符串在加號運算有最高的優(yōu)先運算
數字 + 其他的非字符串的原始數據類型數字為優(yōu)先
添加回答
舉報
0/150
提交
取消