JavaScript操作符(運算符):
1锋谐、一元操作符(單目操作符):
遞增和遞減操作符(分前置型和后置型)
++是遞增操作符凝危,--是遞減操作符
后置型:
i++ 先賦值 后自加
i-- 先賦值 后自減
當不出現(xiàn)賦值時昆烁,執(zhí)行自增(自減)運算多矮;但是出現(xiàn)賦值時,先賦值登失,后運算遏佣;
var a = 10;
var b = a++;
console.log(a);
這里沒給a賦值所有執(zhí)行自增運算,所以結(jié)果是:
var a = 10;
var b = a++;
console.log(b);
這里給b賦值了揽浙,所以先賦值状婶,先不做運算意敛,所以結(jié)果是:
i--同理,它是遞減操作符太抓,執(zhí)行的是遞減操作空闲。
前置型:
++i 先自加 再賦值
--i 先自減 再賦值
這里和后置型不同的是,它先運算后賦值走敌。
var a = 10;
var b = ++a;
console.log(a);
console.log(b);
這里都是先執(zhí)行遞增運算碴倾,所以結(jié)果是:
一元加、減操作符
這兩種操作符將執(zhí)行 Number() 轉(zhuǎn)型函數(shù)功能掉丽。
區(qū)別就是 減操作符 執(zhí)行 Number() 轉(zhuǎn)型函數(shù)功能后跌榔,將得到的數(shù)轉(zhuǎn)換為負數(shù)。加操作符不作任何運算捶障。
var a = -10;
console.log(+a);
console.log(-a);
2僧须、加性操作符
-
加法操作符
顧名思義就是加法運算var sum = 6 + 7; console.log(sum);
如果運算中出現(xiàn)字符串類型,+ 將執(zhí)行拼接的功能项炼,轉(zhuǎn)成字符串担平。
var sum = "7" + 6;
console.log(sum);
-減法操作符
如果有一個操作數(shù)是字符串、布爾值锭部、 null 或 undefined 暂论,則先在后臺調(diào)用 Number() 函數(shù),將其轉(zhuǎn)換為數(shù)值拌禾,然后再根據(jù)前面的規(guī)則執(zhí)行減法計算取胎。如果轉(zhuǎn)換的結(jié)果是 NaN ,則減法的結(jié)果就是 NaN 湃窍;
var result = 7 - NaN;
console.log(result);
var result = 7 - true;
console.log(result);
因為true轉(zhuǎn)換成了“1”闻蛀,所以結(jié)果是:
var result = 7 - 2;
console.log(result);
簡單的減法運算
var result = 7 - "";
console.log(result);
""被轉(zhuǎn)換成了0,所以結(jié)果如下:
var result = 7 - "2";
console.log(result);
“2”備注暗黃成數(shù)值2您市,所以結(jié)果如下:
var result = 7 - null;
console.log(result);
null被轉(zhuǎn)換成0觉痛,所以結(jié)果如下:
3、乘性操作符
乘性操作符遇到非數(shù)值型將執(zhí)行 Number() 轉(zhuǎn)型函數(shù)功能茵休。(隱式類型轉(zhuǎn)換)
-
乘法操作符
/ 除法操作符
% 取余操作符
求模(取余數(shù))操作符由一個百分號( % )表示var sum = 8 % 2; //0 var sum1 = 7 % 7 //0 var sum2 = 4 % 10; //4
4薪棒、關(guān)系操作符
< 、 > 泽篮、 <= 和 >= 這幾個關(guān)系操作符用于對兩個值進行比較
這幾個操作符都返回一個布爾值
比較的是字符的編碼數(shù)字的大小盗尸,小寫字母的數(shù)值 大于 大寫字母的數(shù)值
26個字母數(shù)值依次遞增柑船,如果首個字符相同帽撑,比較第二個,以此類推鞍时。
var result = "23" < "3"; //true 兩個字符串先比較第一個亏拉,第一個相同扣蜻,比較第二個,以此類推及塘。
var result = "23" < 3; //false 一個數(shù)值莽使,一個字符串,先將字符串轉(zhuǎn)換成數(shù)值笙僚,再比較芳肌。
var result = "a" < 3; // false,因為"a"被轉(zhuǎn)換成了 NaN
由于字母 "a" 不能轉(zhuǎn)換成合理的數(shù)值肋层,因此就被轉(zhuǎn)換成了 NaN 亿笤。
根據(jù)規(guī)則,任何操作數(shù)與 NaN 進行關(guān)系比較栋猖,結(jié)果都是 false 净薛。
于是,就出現(xiàn)了下面這個有意思的現(xiàn)象:
var result = NaN < 3; //false
var result = NaN >= 3; //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) 全等和不全等=== !==
除了在比較之前不轉(zhuǎn)換操作數(shù)之外燃领,全等和不全等操作符與相等和不相等操作符沒有什么區(qū)別。
全等操作符由 3 個等于號( === )表示辱姨,它只在兩個操作數(shù)未經(jīng)轉(zhuǎn)換就相等的情況下返回 true 柿菩,
如下面的例子所示:
var result1 = ("55" == 55); //true,因為轉(zhuǎn)換后相等
var result2 = ("55" === 55); //false雨涛,因為不同的數(shù)據(jù)類型不相等
!==
不全等操作符由一個嘆號后跟兩個等于號( !== )表示枢舶。它在兩個操作數(shù)未經(jīng)轉(zhuǎn)換就不相等的情況下返回 true 。
例如:
var result1 = ("55" != 55); //false替久,因為轉(zhuǎn)換后相等
var result2 = ("55" !== 55); //true凉泄,因為不同的數(shù)據(jù)類型不相等