1. 程式人生 > >JavaScript 六大類運算子(詳細~)

JavaScript 六大類運算子(詳細~)

運算子


  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的變形形式。