二元加運算子

2021-09-24 03:14:25 字數 1038 閱讀 6563

減法,乘法,除法在運算過程中,都是先將運算元,轉成數值,再進行後續操作,而加法,卻有所不一樣。

當兩個數值相加時,加法運算子,跟減法操作符一樣,直接求和。

var a = 1

var b = 2

a + b // 3

當兩個字串相加時,加法運算子,這表現為字串拼接。

var a = '1'

var b = '2'

a + b // '12'

注意:只有有乙個運算元為,字串,都視為字串拼接,另乙個運算元,也會先轉成字串

true + false // 1

true + null // 1

true + undefined // nan

null + undefined // nan

如果運算元是乙個物件,必須先將其轉成乙個原始型別,再相加

var obj = 

obj + 2 // '[object object]2'

上面**中,物件obj轉成原始型別的值為[object object],再與2相加就得到了上面的結果。

物件轉成原始型別的值,規則如下:

首先自動呼叫物件的valueof方法

var obj = 

}obj + 2 // 3

再呼叫tostring方法,將其轉化為字串

var obj = ;

obj.valueof().tostring() // "[object object]"

這裡有乙個特例,如果運算元是乙個date物件的例項,那麼會優先執行tostring方法

var obj = new date();

obj.valueof = function () ;

obj.tostring = function () ;

obj + 2 // "hello2"

二元運算子過載

siwuxie095 二元運算子過載 所謂 二元運算子,即 這個符號與兩個運算元進行運算 1 加號 的過載 加號 的過載方式有兩種 一種是友元函式過載,一種是成員函式過載 1 先來看成員函式過載,如下 定義乙個座標類 coordinate 在類中宣告成員函式 operator 它的引數是 const...

C 二元運算子過載

二元運算子需要兩個引數,下面是二元運算子的例項。我們平常使用的加運算子 減運算子 乘運算子 和除運算子 都屬於二元運算子。就像加 運算子。下面的例項演示了如何過載加運算子 類似地,您也可以嘗試過載減運算子 和除運算子 include using namespace std class box voi...

部分二元運算子的運算規則

整數運算 如果兩個運算元有乙個為long,則結果為long。沒有long時,結果為int,即使運算元全為byte,short,結果也是int。浮點運算 如果兩個運算元有乙個為double,則結果為double。只有兩個運算元都為float,結果才為float。浮點數預設為double。浮點數不精確,...