1. 程式人生 > 其它 >算數運算子與關係運算符_JavaScript-算數運算子

算數運算子與關係運算符_JavaScript-算數運算子

技術標籤:算數運算子與關係運算符

805957809c9357fd611aa29e4116695c.png

好好學習,天天向上

算術運算子

  • + - * / % ()
  • %: 取餘,取模,a / b = c 餘 d,就說 a % b = d
  • 運算順序:先算乘除取餘、再算加減,有小括號先算小括號

算術運算子在正常情況下

1、加法 +

<script>
    var result= 2 + 3;
    console.log(result); // 結果為 5
</script>

2、減法

<script>
    var result= 3 - 2;
    console.log(result); // 結果為 1
</script>

3、乘法

<script>
    var result= 3 * 2;
    console.log(result); // 結果為 6
</script>

4、除法

<script>
    var result= 3 / 2;
    console.log(result); // 結果為 1.5
</script>

5、取餘

可以理解為,第一個數值除以第二個數值,如果能被整除返回為 0,不能被整出,得出的餘數輸出到上面,但不會大於大本身的數值

<script>
    var result = 99 % 3;
    console.log(result); // 結果為 0
    var result2 = 98 % 3;
    console.log(result2); // 結果為 2
    var result3 = 3 % 99; 
    console.log(result3); // 除不盡,把自己給餘出來,結果為 3
</script>

示例:多個算術運算子

<script>
    var a = 3;
    var b = 4;
    // ((a + b) / 5) = 1.4
    // a * (3 / b + 2 * b) = 26.25
    var result = ((a + b) / 5) + a * (3 / b + 2 * b); 
    console.log(result); // 結果為 27.65
</script>

算術運算子在非正常情況下

1、第一種情況

有特殊值字面量參與的運算

  • NaN參與的運算:得到的結果都是NaN
  • Infinity參與的運算,視情況而定
<script>
    console.log(NaN + 4); //NaN
    console.log(NaN % 4); // NaN
    console.log(Infinity + 4); // Infinity
    console.log(Infinity - 4); // Infinity
    console.log(Infinity * 4); // Infinity
    console.log(Infinity / 4); // Infinity
    console.log(Infinity % 4); // NaN
    console.log(-Infinity + 4); // -Infinity
    console.log(-Infinity % 4); // NaN
    console.log(4 / Infinity); // 0
    console.log(4 % Infinity); // 4
    console.log(Infinity + Infinity); // Infinity
    console.log(Infinity % Infinity); // NaN
</script>

2、第二種情況

其他型別的資料參與數學運算

  • 有字串參與的 + 運算:+ 號變為連字元將前後連線成整體字串
  • 隱式轉換:除了字串參與的 + 運算,其他情況下,所有其他資料型別參與數學運算時, 計算機暗中將其他資料型別先自動轉換成數字型別,再參與運算,這個過程中不需要使用 parseInt()、Number() 等方法,過程是暗中進行,這就是一個隱式轉換的過程

隱式轉換

其他的資料型別會隱式轉換為數字型別

  • 對應數字:純數字字串會轉為對應的數字"123"→123
  • 轉換為 1: true
  • 轉換為 0:false、null、 “”空字串、空白字串
  • 轉換為 NaN:undefined、非空非純數字字串
<script>
    // 字串
    console.log(1 + "2"); // 12
    console.log(1 - "2"); // -1
    console.log(1 * "2"); // 2
    console.log(1 / "2"); // 0.5
    console.log(1 % "2"); // 1
    console.log(1 - ""); // 1
    console.log(1 - "   "); // 1
    console.log(1 - "12aaa"); // NaN
    // 其他資料型別
    console.log(1 + true); // 2
    console.log(1 + false); // 1
    console.log(1 + undefined); // NaN
    console.log(1 + null); // 1
</script>