運算符
1、算術運算符:+、-、*、/、%、++、--
單目(操作數為一個且為變量): i++、i--、++i、--i;
雙目:+、-、*、/、%;
雙目其中 -*/%
如果運算符兩側的值為數字型,可進行正常的數值運算;
console.log(3-1);//2
如果存在純數字字符串(如:"12"),計算機自動轉其為數字型進行運算;
console.log("3"-1);//2
只要有一側為非純數字字符串,結果為NaN。
co
nsole.log("3a"-1);//NaN
NaN:非數字類型。
特點:① 涉及到的 任何關於NaN的操作,都會返回NaN ② NaN不等於自身。
雙目 +
如果運算符兩側的值為數字型,可進行正常的數值運算;
console.log(3+1);//4
只要有一側為字符串,表達連接。
console.log("3a"+1);//3a1
(1)“%”取余運算符,兩個數相除,取余數。
A = 10 % 3; // A = 1,如果余數不為0,則兩個不能整除
A = 10 % 2; // A = 0,如果余數為0,則兩個數能除盡
(2)“++”加1運算符、自增1
“++”可以作前綴(++i),也可以作后綴(i++)。
(3)“--”減1運算符,自減1
“--”可以作前綴(--i),也可以作后綴(i--)。
i++和++i的區別:
相同點:都讓變量自增1;
不同: i++ 先將i的值賦給整個表達式,i再自增1;
++i 先i自增1,再將i的值賦給整個表達式。
例如:var i = 2;
var j = i++;
console.log(i); //3
console.log(j); //2
var i = 2;
var j = ++i;
console.log(i);//3
console.log(j);//3
2、賦值運算符:+=、-=、*=、/=、%=
“+=”先加后等。如:a += 10 //等同於 a = a + 10
“-=”先減后等。如:a -= 10 //等同於 a = a - 10
“*=”先乘后等。如:a *= 10 //等同於 a = a * 10
“/=”先除后等。如:a /= 10 //等同於 a = a / 10
var i = 1;
i += 2;
console.log(i);//3
var i = -2;
i -=2;
console.log(i);//-4
3、字符串運算符:+、+=
字符串只能進行“連接”運算,不能進行其它運算。
var a = “abc”;
var b = a + “bcd”; // 結果b = a + “bcd” = “abc” + “bcd” = “abcbcd”
var a = “abc”;
a += 10; // 結果a = a + 10 = “abc” + 10 = “abc10”
4、關系(比較)運算符:>、<、>=、<=、==、!=(不等於)、===(全等)、!==(全不等)
比較運算符的運算結果是布爾值(true或false)。
A = 10 > 20; // 結果A=false
A = 20>=20; // 結果A=true
A = 10%2 == 0; // 結果A=true
A = 10%2 == “0”; // 結果A=true
A = 10%3 != 0; // 結果A=true
A = 10%2 === “0”; //結果A=false
console.log(i = 10 >=9);
“=”是賦值號。如:a = 10
“==”等於。只比較兩個變量的值,而不管類型。只要值一樣,就返回true,否則返回false。
“===”全等於。既比較變量,也判斷類型。如果類型和值都一樣,返回true,否則返回false。
console.log(a=10 >= 9);//ture
console.log(null == undefined);//ture
console.log(null === undefined);//false
console.log(null == 0);//false
字符串的比較:比較的是ASCII碼值(a:97 b:98 c:99 ... A:65 B:66 C:67 ...)/從左到右比較,直到比較出結果;
console.log("a" > "b");//false
5、邏輯運算符:&&(且)、||(或)、!(非)
邏輯運算符的運算結果有兩個true或false。
“&&”邏輯與(並且關系)。如果左右兩個兩個條件同時滿足時,則結果為true,否則,結果為false。
“||”邏輯或。左右兩個條件,只要有一個滿足,則返回true,否則,返回false。
“!”取反運算。!true = false 、 !false = true 、 !100 = false
為假的值:0 null undefined "" false
計算機自身短路情況:
第一個條件 && 第二個條件 如果第一個條件為假則計算機出現短路現象 不會繼續判斷第二個條件
第一個條件 || 第二個條件 如果第一個條件為真則計算機出現短路現象 不會繼續判斷第二個條件
例如:
console.log(6>7 && 5);//false
console.log(5 && 6<7);//ture
console.log(6<7 && 5);//5
console.log(0 && 6>5);//0
6、三目(元)運算符:? :
所謂“三目運算符”就是指三個操作數。
語法:條件表達式 ? 結果1 : 結果2
含義:如果條件為true,則執行“結果1”的代碼;如果條件為false,則執行“結果2”的代碼。
其實:三目運算符,就是if else的變形形式。