表達(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)