表達(dá)式與操作符

表達(dá)式:表達(dá)你的想法或者說示意圖。

理解:表達(dá)式與數(shù)學(xué)中的定義相似,表達(dá)式是指具有一定的值,用操作符把常數(shù)和變量連接在一起的代數(shù)式。

一個表達(dá)式可以包括常數(shù)、變量、操作符。

一、JavaScript操作符(運算符):

1.一元操作符(單目操作符):

? 遞增和遞減操作符(分前置和后置型)

? ++是遞增操作符/--是遞減操作符

? i++ 先賦值,再自加

? i-- 先賦值,再自減

? 當(dāng)不出現(xiàn)賦值時,執(zhí)行自增/自減運算;但出現(xiàn)賦值時,先賦值,后運算;


? ++i 先自加,再賦值

? --i 先自減,再賦值

*一元加、減操作符

這兩種操作符將執(zhí)行Number()轉(zhuǎn)型函數(shù)功能。區(qū)別就是減操作符執(zhí)行Number()轉(zhuǎn)型函數(shù)功能后,將得到的數(shù)轉(zhuǎn)為負(fù)數(shù)。

var a = "1";

console.log(-a);//a = -1

2.加性操作符

+加法操作符

var sum = 2 + 4 ;//6

var sum = 2 + "4";//24

var sum = 2 + "4a";//NaN

如果運算中出現(xiàn)字符串類型,+將執(zhí)行拼接的功能,轉(zhuǎn)為字符串。

-減法操作符

如果有一個操作數(shù)是字符串、布爾值、null或undefined,則先在后臺調(diào)用Number()函數(shù),將其轉(zhuǎn)換為數(shù)值,然后再根據(jù)前面的規(guī)則進(jìn)行減法運算。

如果轉(zhuǎn)換的結(jié)果是NaN,則減法的結(jié)果就是NaN。

var r1 = 5 - true;//4,trur被轉(zhuǎn)換成了1

var r2 = 5 - null;//5,null被轉(zhuǎn)換成了0

var r3 = 5 - 2 ;//3

3.乘性操作符

乘性操作符遇到非數(shù)值型將執(zhí)行Number()轉(zhuǎn)型函數(shù)功能。(隱式類型轉(zhuǎn)換)

*乘法操作符

/除法操作符

%取余操作符

求模操作(余數(shù))符由一個百分號(%)表示

var sum = 4 % 5 ;//4,取0余4

4.關(guān)系操作符

<、>、<=和>=這幾個關(guān)系操作符用于對兩個值進(jìn)行比較,這幾個操作符都返回一個布爾值

比較的是字符的編碼數(shù)字的大小,小寫字母的的數(shù)值大于大寫字母的數(shù)值,26個字母數(shù)值依次遞增,如果首個字符相同,比較第二個,以此類推

var result = "23" < "3";//true

var result = "23" < 3;//false

var result = "a" < 3;//false,因為“a”被轉(zhuǎn)換成NaN

根據(jù)規(guī)則,任何操作數(shù)與NaN進(jìn)行關(guān)系比較,結(jié)果都是false。

5.相等操作符

相等和不相等——先轉(zhuǎn)換再比較(僅僅比較轉(zhuǎn)換后的值)

全等和不全等——僅比較不轉(zhuǎn)換(不僅比較值,還比較類型)

都返回布爾值(true或false)

1)相等和不相等(==和!=)

返回為true的總結(jié):

null == undefined

1 == true

0 == false

"" == 0

"" == false

NaN != NaN

true == "1"

false == "0"

2)全等和不全等(===和!==)

除了在比較之前不準(zhǔn)換操作數(shù)之外,全等和不全等操作符與相等和不相等操作符沒有什么區(qū)別。

*布爾操作符(邏輯操作符)

布爾操作符有三種:!非、&&與、||或

&&(與):找第一個為false的值并返回,如果沒找到則返回最后一個操作數(shù)的值

||(或):找第一個為true的值并返回,如果沒找到則返回最后一個操作數(shù)的值

幾乎所有語言中||和&&都遵循“短路”原理

!非

1)無論操作數(shù)是什么數(shù)據(jù)類型,邏輯非都會返回一個布爾值。(只能返回true或false)

2)邏輯非操作符首先會將它的操作數(shù)轉(zhuǎn)換為一個布爾值然后再對其求反

*賦值操作符

= += -= *= /= %=

var i = 1;

i += 2;

console.log(i);//3(1+2=3)

*逗號操作符

使用逗號操作符可以在一條語句中執(zhí)行多個操作,

var a = 1, b = 2, c = 3,

逗號操作符多用于聲明多個變量,但除此之外,逗號操作符還可以用于賦值。在用于賦值時,逗號操作符返回表達(dá)式中的最后一項

*位操作符

按位非(~)、按位與(&)、按位或(|)、按位異或(^)

按位異或運算(^) n ^ n

運算規(guī)則:兩個數(shù)轉(zhuǎn)為二進(jìn)制,從高位開始比較,相同為0,不同為1。最后將比較得到的結(jié)果轉(zhuǎn)為十進(jìn)制

位與運算符(&) n & n

運算規(guī)則:兩個數(shù)都轉(zhuǎn)為二進(jìn)制,然后從高位開始比較,兩數(shù)相同為1,否則為0。最后將比較得到的結(jié)果轉(zhuǎn)為十進(jìn)制

位與運算符(|) n | n

運算規(guī)則:兩個數(shù)都轉(zhuǎn)為二進(jìn)制,然后從高位開始比較,兩數(shù)只要有一個是1則為1,否則為0。最后將比較得到的結(jié)果轉(zhuǎn)為十進(jìn)制

位與運算符(~)

運算規(guī)則:如果位為0,結(jié)果為1;如果位位1,結(jié)果為0

~37//-38

~-56//55

(負(fù)數(shù)比正數(shù)大1)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容