1 回答

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