JavaScript 六大類運算子(詳細~) 阿新 • • 發佈:2018-12-24 運算子 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的變形形式。