1. 程式人生 > 實用技巧 >JavaScript 運算子

JavaScript 運算子

JavaScript 運算子

1.運算子

運算子(operrator)也被稱為操作符,是用於實現賦值、比較和執行算術運算子等功能的符號。

JavaScript中常用的運算子由:

  • 算術運算子

  • 遞增和遞減運算子

  • 比較運算子

  • 邏輯運算子

  • 賦值運算子

2.算術運算子

2.1算術運算子概述

概念:算術運算使用的符號,用於執行兩個變數或值的算數運算。

運算子描述例項
+ 10 + 20 = 30
- 10 - 20 = -10
* 10 * 20 = 200
/ 10 / 20 = 0.5
% 取餘數(取模) 返回除法的餘數 9 % 2 = 1

2.2 浮點數的精度問題

浮點數值的最高精度是17位小數,但在進行算術計算時其精確度遠遠不如整數。

console.log(0.1 + 0.2);//結果不是0.3 而是0.30000000000000004
console.log(0.03 + 0.4);//結果不是0.43 而是 0.43000000000000005

所以:不要直接判斷兩個浮點數是否相等

2.3表示式和返回值

表示式:是由數字、運算子、變數等以能求得數值的有意義排列方法所的組合

簡單理解:是由數字、運算子、變數等組成的式子

表示式最終都會有一個結果,返回給我們,我們稱為返回值

3.遞增和遞減運算子

3.1遞增和遞減運算子概述

如果需要反覆給數字變數新增或減去1,可以使用遞增(++)和遞減(--)運算子來完成。

在JavaScript中,遞增(++)和遞減(--)既可以放在變數前面也可以放在變數後面。放在變數前面

時,我們可以稱為前置遞增(遞減)運算子放在變數後面時,我們可以稱為後置遞增(遞減)運算子

注意:遞增和遞減運算子必須和變數配合使用。

3.2 遞增運算子

1.前置遞增運算子

++num前置遞增,就是自加1,類似於num = num + 1,但是++num寫起來更簡單。

使用口訣:先自加,後返回值

2.後置遞增運算子

num++後置遞增,就是自加1,類似於num = num + 1,但是num++寫起來更簡單。

使用口訣:先返回原值,後自加

3.3前置遞增和後置遞增小結

  • 前置遞增和後置遞增運算子可以簡化程式碼的編寫,讓變數的值 + 1 比以前寫法更簡單

  • 單獨使用時,執行結果相同

  • 與其他程式碼連用時,執行結果會不同

  • 後置:先原值運算,後自加(先人後己)

  • 前置:先自加,後運算(先己後人)

  • 開發時,大多使用後置遞增/減,並且程式碼獨佔一行,例如:num++;或者num--;

4.比較運算子

4.1比較運算子概述

概念:比較運算子(關係運算符)是兩個資料進行比較時所使用的運算子,比較運算後,會返回一個布林值(true/false)作為比較運算的結果。

運算子名稱說明案例結果
< 小於號 1 < 2 true
> 大於號 1 > 2 false
>= 大於等於號(大於或者等於) 2 >= 2 true
<= 小於等於號(小於或者等於) 3 <= 2 false
== 判斷號(會轉型) 37 == 37 true
!= 不等號 37 != 37 false
=== !== 全等 要求值和資料型別都一致 37 === '37' true

4.2 小結

符號作用用法
= 賦值 把右邊給左邊
== 判斷 判斷兩邊值是否相等(注意此時有隱式轉換)
=== 全等 判斷兩邊的值和資料型別是否完全相同
 console.log(18 == '18');
console.log(18 === '18')

5.邏輯運算子

5.1 邏輯運算子概述

概念:邏輯運算子是用來進行布林值運算的運算子,其返回值也是布林值。後面開發中經常用於多個條件的判斷

邏輯運算子說明案例
&& “邏輯與”,簡稱“與” and true && false
|| “邏輯或”,簡稱“或”or true || false
! “邏輯 非”,簡稱“非” not !true

5.2 邏輯與&&

兩邊都是true才返回true,否則返回false

console.log(3 > 5 && 5 < 3);//false
console.log(3 < 5 && 3 < 4);//true

5.3 邏輯或 ||

兩邊都是false才返回false,否則返回true

console.log(2 > 1 || 4 < 6);//true
console.log(3 > 4 || 3 > 5);//false

5.4 邏輯非 !

邏輯非 (!)也叫作取反符,用來取一個布林值相反的值,如true的相反值是false

 var isOk = !true;
console.log(isOk);//false

5.5 短路運算(邏輯中斷)

短路運算的原理:當有多個表示式(值)時,左邊的表示式值可以確定結果時,就不再繼續運算右邊的表示式的值;

1.邏輯與

  • 語法 :表示式1 && 表示式2

  • 如果第一個表示式的值為真,則返回表示式2

  • 如果第一個表示式的值為假,則返回表示式1

console.log(123 && 345);//345
console.log(0 && 123);//0
console.log(0 && 123 + 234 && 456);//0

2.邏輯或

  • 語法:表示式1 || 表示式2

  • 如果第一個表示式的值為真,則返回表示式1

  • 如果第一個表示式的值為假,則返回表示式2

console.log(123 || 456);//123
console.log(0 || 521);//521
console.log(125 || 454 + 564 || 123);//125

邏輯中斷很重要,會影響程式的執行結果

var num = 0;
console.log(123 || num++);//123
console.log(num);//0

6.賦值運算子

概念:用來把資料賦值給變數的運算子。

賦值運算子說明案例
= 直接賦值 var usrName = '我是值';
+=、-= 加、減一個數後再賦值 var age = 10;age += 5;//15
*=、/=、%= 乘、除、取模後再賦值 var age = 2;age *= 5;//10
var age = 10;
age += 5;//相當於age = age + 5;
age -= 5;//相當於age = age - 5;
age *= 5;//相當於age = age * 5;

7.運算子優先順序

優先順序運算子順序
1 小括號 ()
2 一元運算子 ++ -- !
3 算數運算子 先*/% 後+-
4 關係運算符 > >= < <=
5 相等運算子 == != === !==
6 邏輯運算子 先 && 後||
7 賦值運算子 =
8 逗號運算子
  • 一元運算子裡面的邏輯非優先順序很高

  • 邏輯與比邏輯或優先順序高