一元運(yùn)算符:
+正號(hào) :正號(hào)不會(huì)對(duì)數(shù)字產(chǎn)生任何影響
- 負(fù)號(hào) :符號(hào)可以對(duì)數(shù)字進(jìn)行符號(hào)的取反
對(duì)于非number類型的值阅虫,它會(huì)將先轉(zhuǎn)換為Number,然后再運(yùn)算
-可以對(duì)一個(gè)其他的數(shù)據(jù)類型使用+不跟,來將其轉(zhuǎn)換為number颓帝,其原理和number一樣
如:var a = 123;
a? = +a??? 值為123
a = -a?????? 值為-123
a = true;??? 值為 1
var result = 1 +"2" +3?? 值為 123
var result = 1 + +'2' + 3 值為 6
自增自減:
自增++ :通過自增可以使變量在自身的基礎(chǔ)上增加1
自增分為前置++ 和后置++
前置++表示為 先加后賦值
后置++表示為??? 先賦值后加
自減 -- 通過自減可以使變量在他本身的基礎(chǔ)了減一
自減分為兩種? ;c--???? --c
前置自減???? 先減后賦值
后置自減????? 先賦值后減
var a =1;
a = a++????????????? a = 1
a = ++a??? ? ? ? ? ? ? a = 2
d = 20;
d =? d ++
console.log("d = " + d)
e = d++
d = e;
console.log("d=" + d)
他們兩個(gè)的結(jié)果都一樣
邏輯運(yùn)算符:
有三中邏輯運(yùn)算符
窝革! 取反
變真為假躲履,便假為真;
&&?? 遇false為false?????? 只要有一個(gè)為false則返回的結(jié)果就是fales
||? 遇true為true? 只有有一個(gè)true則返回的結(jié)果的就是true
與或運(yùn)算:
在進(jìn)行與或運(yùn)算的時(shí)候聊闯,會(huì)將不是布爾值的轉(zhuǎn)換為布爾值工猜,然后再把其原類型轉(zhuǎn)換回去
與計(jì)算
var result = 1 &&? 2???????? 2
var result = 0 && 1 ? ? ? ? ? ?? 0 ???
var result = NaN && 0????? NaN
console.log("result" + result)?
或計(jì)算
var result = 2|| 1?????????? 2
result = 2 ||NaN????????? 2
result = NaN? || 0????? 0
result? = "" ||? "hello"? hello
result =?? -1 || "你好"?? -1??
賦值運(yùn)算符:
a += a???????? a = a+a
a -+a?????????? a = a-a
a *=a?????????? a =a*a
a /=a????????? a = a/a
a? %=a??????? a = a%a
關(guān)系運(yùn)算符:
>=?? 判斷符號(hào)左側(cè)的值是否大于或等于右側(cè)的值
>?? 判斷符號(hào)左側(cè)的值是否等于右側(cè)的值
<?? 判斷符號(hào)左側(cè)的值是否大于右側(cè)的值
<=? 判斷符號(hào)左邊的值是否大于或等于右側(cè)的值
非數(shù)值對(duì)比:如果是非數(shù)值進(jìn)行比較的時(shí)候,會(huì)將其轉(zhuǎn)換為數(shù)字菱蔬,然后在將其進(jìn)對(duì)比
如果兩測(cè)都是字符串是篷帅,不會(huì)將其轉(zhuǎn)換為數(shù)字,而是將其轉(zhuǎn)換為unicode編碼
相等運(yùn)算符:
NaN 和任何數(shù)都不想等拴泌,包括他本身魏身,可以使用isNaN查看這個(gè)元素是不是NaN
==
用來比較兩個(gè)值是否相等,如果相等就返回true 不相等就返false??
使用==來做相等運(yùn)算
當(dāng)使用==來比較兩個(gè)值的時(shí)候蚪腐,如果值得里欸選類型不同箭昵,則會(huì)自動(dòng)進(jìn)行類型轉(zhuǎn)換,將其轉(zhuǎn)換為相同的類型回季,然后在比較不相等
不相等用來判斷連個(gè)值是否不相等 家制,如果不相等返回true否則返回false
使用!=來表示不等于?
不相等也會(huì)對(duì)變量進(jìn)行自動(dòng)的類型轉(zhuǎn)換,如果轉(zhuǎn)換后相等他也會(huì)返回false
var a =1
console .log( a == "1")?? true
console.log(a != 2)? true
console.log(null == 0 )? false
console.log(NaN == "1")? false
console.log(NaN == undefined)? false
console.log(NaN == NaN)? false
全等 ===
用來判斷兩個(gè)值是否相等泡一,他和相等類似颤殴,唯一不同的是,不會(huì)做類型轉(zhuǎn)換
不全等!==?
用來判段兩個(gè)值是否不全等鼻忠,和不等類似涵但,不同的是,他不做類型轉(zhuǎn)換 ,如果兩個(gè)值的類型不同矮瘟,直接返回true
var b=5;
console.log(b === "5") false
console.log(b !=="5") false
條件運(yùn)算符
語法: 條件表達(dá)式? : 語句1 :語句2
如果條件的表達(dá)式求值結(jié)果是一個(gè)非布爾值瞳脓,會(huì)將其轉(zhuǎn)換為布爾值然后在計(jì)算
true ?? alert("語句1") : alert(語句2)
var a = 20;
var b = 30;
a > b ??? alert("a大") : alert("b大")
unicode編碼
在js使用的時(shí)候,我們使用的是十六進(jìn)制的數(shù)?? console.log(\u2FB9)
在頁面中使用的時(shí)候澈侠,我們使用的是十進(jìn)制????????????????????????????????????????????????????????????????? console.log(#xe698)