Skip to content

表达式和运算符

  • 赋值运算
  • 比较运算
  • 算数运算
  • 为运算
  • 逻辑运算
  • 字符串运算
  • 条件运算
  • 逗号运算
  • 一元运算
  • 关系运算

1.赋值运算

js
x = y
x+=y x = x + y
x-=y x = x - y
x*=y x = x * y
x/=y x = x / y
x%=y x = x % y

E//S6中解构运算
let [a1,a2] = [1,2]
// a1 =1 a2 = 2

2.比较运算

js
1 == '1' //true 
1 !== '1' //true
1 === '1'  // false
1 > 2 //false
1 < 2 //true
1 <= 2 //true
1> =2  //false

3.算数运算

  • % 求余
  • ++ ++N返回加一以后的值,N++返回原来的值然后加一
  • -- 自减同上
js
11 % 5 = 1

4.位运算

5.逻辑运算

js
&& ||

6.字符串运算符

js
let a= '111a';
let b = '222b';
a+=b;

7.三元运算

js
let a= 10;
let b = a>20? 1: 2

8.逗号运算

对两个操作数求值并且返回最终操作数的值,通常用于 for循环中,在每次循环时对多个变量进行

9.一元运算

一元操作符仅对应一个操作数

  • delete 删除一个对象的属性或数组某个key值返回true or false
  • typeof 返回一个参数的类型字符串值
  • void 表示一个运算没有返回值,常常用在创建一个超链接文本,但是点击的时候没有任何效果
js
let a= {name: 'aa',age: 20}
delete a.name

let b = [1,2,3]
delete b[0] // [empty,2,3]
b[0] undefined
 
typeof 'aaa' //string
typeof true //Boolean
typeof null //'object'
typeof undefined //undefined

10.关系运算

  • in 判断指定属性是否在指定对象中,若是返回true
js
let a = {name: 'lee',age: 20}
let b = [1,2,3]
'lee' in a
0 in b
  • instanceof 判断一个对象是否是指定类型,若是返回true
js
let d = new Date()
d instanceof Date true

11.运算符的优先级

js
- .[]()
- ++ -- ~ ! delete
- * / %
- + -

关于 && 运算符的思考

与运算符 二者必须是真才返回真,但是当在表达式中,返回值是不同的, a && b,当a是真值时,不管b真与假都返回b,当a是假值时,都返回a。

js
if(1 && 2) {
  console.log('true')
}

let a = 1 && 2;
//a 2
let a = 1 && 0;
//a 0
let c = 0 && 2;
//c 0

&& 与 || 使用技巧

js
let a = 5 && 4; //返回4 <img src="item && item.src"/>
let b = 0 && 4; //返回0
let c = 5 || 4; //返回5
let d = 0 || 4; //返回4 let name = item.name || 'jack'

注意

|| 见真则真 & 见假则假

  • && (逻辑与):如果第一个操作数为假值(falsy),则返回第一个操作数;否则返回第二个操作数。

  • || (逻辑或):如果第一个操作数为真值(truthy),则返回第一个操作数;否则返回第二个操作数。