JavaScript基礎(chǔ)--算數(shù)運(yùn)算符

運(yùn)算符基本概念

  • 和數(shù)學(xué)中的運(yùn)算符一樣, JavaScript中的運(yùn)算符是告訴程序執(zhí)行特定算術(shù)或邏輯操作的符號(hào)
  • 例如告訴程序, 某兩個(gè)數(shù)相加, 相減,相乘等


  • 什么是表達(dá)式
    • 表達(dá)式就是利用運(yùn)算符鏈接在一起的有意義,有結(jié)果的語(yǔ)句;
    • 例如: a + b; 就是一個(gè)算數(shù)表達(dá)式, 它的意義是將兩個(gè)數(shù)相加, 兩個(gè)數(shù)相加的結(jié)果就是表達(dá)式的結(jié)果
    • 注意: 表達(dá)式一定要有結(jié)果

運(yùn)算符分類(lèi)

  • 按照功能劃分:
    • 算術(shù)運(yùn)算符
    • 位運(yùn)算符
    • 關(guān)系運(yùn)算符
    • 邏輯運(yùn)算符
  • 運(yùn)算符根據(jù)參與運(yùn)算的操作數(shù)的個(gè)數(shù)分為
    • 單目運(yùn)算
      • 單目運(yùn)算:只有一個(gè)操作數(shù) 如 : i++ !
    • 雙目運(yùn)算
      • 雙目運(yùn)算:有兩個(gè)操作數(shù) 如 : a+b;
    • 三目運(yùn)算
      • 三目運(yùn)算也稱(chēng)為問(wèn)號(hào)表達(dá)式 a>b ? 1 : 0;

運(yùn)算符的優(yōu)先級(jí)和結(jié)合性

  • 在小學(xué)的數(shù)學(xué)課本中,我們就學(xué)習(xí)過(guò)"從左往右,先乘除后加減,有括號(hào)的先算括號(hào)里面的", 這句話(huà)就蘊(yùn)含了優(yōu)先級(jí)和結(jié)合性的問(wèn)題
  • 優(yōu)先級(jí)
    • JavaScript中,運(yùn)算符的運(yùn)算優(yōu)先級(jí)共分為15 級(jí)。1 級(jí)最高,15 級(jí)最低。
    • 在表達(dá)式中,優(yōu)先級(jí)較高的先于優(yōu)先級(jí)較低的進(jìn)行運(yùn)算。
    • 在一個(gè)運(yùn)算量?jī)蓚?cè)的運(yùn)算符優(yōu)先級(jí)相同時(shí),則按運(yùn)算符的結(jié)合性所規(guī)定的結(jié)合方向處理
運(yùn)算符 描述
() 表達(dá)式分組
++ -- - ~ ! 一元運(yùn)算符
* / % 乘法、除法、取模
+ - + 加法、減法、字符串連接
<< >> >>> 移位
< <= > >= 小于、小于等于、大于、大于等于
== != === !== 等于、不等于、嚴(yán)格相等、非嚴(yán)格相等
& 按位與
^ 按位異或
| 按位或
&& 邏輯與
|| 邏輯或
?: 條件
= += -= *= /= %= 賦值運(yùn)算
, 多重求值
  • 結(jié)合性
    • JavaScript中各運(yùn)算符的結(jié)合性分為兩種,即左結(jié)合性(自左至右)和右結(jié)合性(自右至左)。
      • 算術(shù)運(yùn)算符的結(jié)合性是自左至右,即先左后右
      例如表達(dá)式: x - y + z;
      則y 應(yīng)先與“-”號(hào)結(jié)合,執(zhí)行 x-y 運(yùn)算,然后再執(zhí)行+z 的運(yùn)算。
      這種自左至右的結(jié)合 方向就稱(chēng)為“左結(jié)合性”。
      
      • 而自右至左的結(jié)合方向稱(chēng)為“右結(jié)合性”。
        最典型的右結(jié)合 性運(yùn)算符是賦值運(yùn)算符
        例如:如x = y = z = 10;
        由于“=”的 右結(jié)合性,應(yīng)先執(zhí)行z = 10; 再執(zhí)行y = z 再執(zhí)行x = y運(yùn)算。
      
  • 優(yōu)先級(jí)
    • 先計(jì)算優(yōu)先級(jí)高的
        var res = 2 + 3 * 8;
        先算3 * 8, 再加上 2
      
    • 優(yōu)先級(jí)相同則左結(jié)合計(jì)算
      3*5/3*2
      先算3*5,然后再算除3,最后再乘以2
      

算術(shù)運(yùn)算符

名稱(chēng) 符號(hào) 說(shuō)明
加法運(yùn)算符 + 對(duì)兩個(gè)值進(jìn)行加法運(yùn)算,并將結(jié)果返回
減法運(yùn)算符 - 對(duì)兩個(gè)值進(jìn)行減法運(yùn)算,并將結(jié)果返回
乘法運(yùn)算符 * 對(duì)兩個(gè)值進(jìn)行乘法運(yùn)算,并將結(jié)果返回
除法運(yùn)算符 / 對(duì)兩個(gè)值進(jìn)行除法運(yùn)算,并將結(jié)果返回
求余運(yùn)算符 (模運(yùn)算符) % 對(duì)兩個(gè)值進(jìn)行取余運(yùn)算,并將結(jié)果返回
  • 加法運(yùn)算
    • 格式: Number1 + Number2
      var res = 1 + 1;
      console.log(res); // 2
      
      var num1 = 10;
      var num2 = 20;
      var res2 = num1 + num2;
      console.log(res2); // 30
      
    • 非Number類(lèi)型的值進(jìn)行運(yùn)算時(shí),會(huì)將這些值轉(zhuǎn)換為Number然后在運(yùn)算
       var result = true + 1;
      console.log(result); // 2
      result = true + false;
      console.log(result); // 1
      result = 2 + null; 
      console.log(result);// 2
      
    • 任何值和NaN做運(yùn)算都得NaN
      var result = 2 + NaN;
      console.log(result); //NaN
      
    • 任何的值和字符串做加法運(yùn)算,都會(huì)先轉(zhuǎn)換為字符串,然后再和字符串做拼串的操作
      var result = 1 + "123";
      console.log(result); // 1123
      result = 2 + "true";
      console.log(result); // 2true
      
  • 減法運(yùn)算
    • 格式: Number1 - Number2;
    • 非Number類(lèi)型的值進(jìn)行運(yùn)算時(shí),會(huì)將這些值轉(zhuǎn)換為Number然后在運(yùn)算
    • 任何值和NaN做運(yùn)算都得NaN
    • 字符串做減法也會(huì)轉(zhuǎn)換為Number
  • 乘法運(yùn)算
    • 格式: Number1 * Number2;
    • 其它規(guī)律和減法一樣
  • 除法運(yùn)算
    • 格式: Number1 / Number2
    • 其它規(guī)律和減法一樣
  • 取余運(yùn)算
    • 格式: Number1 % Number2;
    • m%n 求余,相當(dāng)于m/n 獲取余數(shù)
    • 規(guī)律
      • n等于0 返回NaN
      • m等于0 結(jié)果為0
      • m>n 正常求余 如:8%3 = 2
      • m<n 結(jié)果是m 如:2%4 = 2
      • 其它規(guī)律和減法一樣

正負(fù)運(yùn)算符

  • 正號(hào)
    • 正號(hào)不會(huì)對(duì)數(shù)字產(chǎn)生任何影響
    • 對(duì)于非Number類(lèi)型的值,會(huì)將先轉(zhuǎn)換為Number,然后再運(yùn)算
  • 負(fù)號(hào)
    • 負(fù)號(hào)可以對(duì)數(shù)字進(jìn)行負(fù)號(hào)的取反
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容