JavaScript 加號操作符細節
阿新 • • 發佈:2018-12-02
JavaScript 加號操作符細節
加號操作符規則
- 如果運算數是物件(object),它將會轉化成基本型別(string,boolean,number,null,undefined);
- 如果運算數中有一個string,第二個運算數也會轉化成string,並且連線起來成為一個新的string。
- 其他情況下,兩個運算數轉化為數字進行加法運算。
物件轉化的規制:
- 如果一個物件型別是Date,可以使用toString()方法
- 在其他情況下使用valueOf()方法,它將返回一個原始值
- 如果valueOf()方法不能返回它的原始值,使用toString()
例子
示例1:數字和物件
var result = 1 + {};//"1[object Object]"
示例2:數字和null
var result = 1+null;//1
1 + null
: 因為運算元沒有字串,根據規則三,null將轉換為數字01 + 0
: 兩個數字做加法運算
示例3:字串和null
var result = "dendi"+null;//dendinull
"dendi" + null
: 因為第一個運算元是一個字串,根據規則二,null將轉換為一個字串”null”- “dendi”+”null”:字串連線
示例4:數字和undefined
var result = 1+undefined;//NaN
1 + undefined:
因為沒有任何一個運算元是字串,根據規則三,undefined將轉換為一個數字NaN
示例5:
var result = + "12";//12(number);
這個比較特殊,是我從JavaScript技巧上面看來的。
一元加操作符(+)放在數值面前,不會對數值產生任何影響。但是在對非數值應用一元加操作符時,會把值轉化成Number()型別的值。
- false -> 0;
- true -> 1;
- 字串會被解析;
- 物件會呼叫他們的valueOf()和toString()方法