016-021-025 一元运算符 自减 自增 三种逻辑运算符 赋值运算符

1.一元运算符 + -

对于Number来说

  • +:不会有任何影响
  • -:对数字进行负号取反

对于非Number来说

  • 先将其转换为Number,然后再运算
  • 可以对其他任意类型,使用+,将其转换为Number, 其原理和使用Number();一样。如:
	var a = 1 + "2" + 3;
	console.log("result = " + a)
	//a的结果是String “123”
	var a = 1 + +"2" + 3;
	console.log("result = " + a)
	//a的结果是Number 6

2.自减–/自增++ (会影响原变量的值)

++a

  • 自增1,使用 没有自增1的值 参与运算;
	a = 20; 
	a = a++; 
	//a++后的值为21,使用原值参与运算,故将原值20重新赋值给a
	//a最终的值为20

a++

  • 自增1,使用 自增1后的值 参加运算

自减同理

3.三种逻辑运算符 !非 &&与 ||或

!非

  • 对一个布尔值取反,false变true;true变false
  • 对一个值两次取反,不会变化
  • 对非布尔值运算,会先将其变为布尔值,再取反
  • 可利用该特性,可以 使用两次取反,将非布尔值转换为布尔值

&&与

布尔值情况

  • 对符号两侧的值进行与运算,并返回结果
  • 只要有一个false就返回false;都为true,才返回true
  • 短路特性,第一个值为false,第二个值不会再判断;第一个值为true,还会检查第二个值

非布尔值

  • 先将其 转换为布尔值,再运算,并且返回原值
  • 如果第一个值是false,直接返回false的原值
  • 如果第一个值是true,直接返回第二个值的原值
  • 补充:
    • 如果两个值都为true,返回第二个值
    • 如果有false,返回靠前的false
      • 如果两个都是false,返回第一个值
      • 如果有一个为false,则返回false

||或

布尔值情况

  • 对符号两侧的值进行或运算,并返回结果
  • 只要有一个true,就返回true;如果都为false,才返回false
  • 短路特性,第一个值为true,不会检查第二个;第一个值为false,才会检查第二个

非布尔值

  • 如果第一个值为true,则直接返回第一个值的原值,第二个值被短路
  • 如果第一个值是false,则直接返回第二个值的原值

与&& 像爱情,都为真,才为真,其余都是假;
或|| 像亲情,都为假,才为假,其余都是真;

4.赋值运算符

  • = :右侧值赋值给左侧变量
  • +=: a+=5 -> a=a+5;
  • -=: a-=5 -> a=a-5;
  • *=: a=5 -> a=a*5;
  • /=: a/=5 -> a=a/5;
  • %=:a%=5 -> a=a%5;

5.关系运算符> >= < <= == === !==

数值情况

  • 比较大小,关系成立返回true,关系不成立返回false

非数值情况

  • 对于数值和非数值比较,转换为数值再比较
  • 任何值和NaN比较都是false
  • 符号两侧的值都是字符串,不会将其转换为数值比较,而是一位一位比较其对应的字符编码,如果两位一样,则比较下一位
  • 比较两个字符串型数字时,一定要注意转型,可使用 +"abcd"

==相等运算符

  • 相等返回true,不相等返回false
  • 如果类型不同,会自动统一类型再比较,大几率转换为Number
  • undefined衍生于null,所以这两比较,结果为true
  • NaN不和任何值相等,包括它本身, 可以通过isNaN()函数来判断一个值是否为NaN,该值是NaN返回true,不是NaN返回false

!=不相等运算

  • 不相等返回true,相等返回false
  • 不相等也会自动进行类型转换

===全等

  • 判断两个值是否全等,与==类似,但不会进行类型转换,要是两个值类型不同,直接返回false

!==不全等

  • 判断两个值是否不全等,与!=类似,但不会进行类型转换,类型不同,直接返回false

6.条件运算符(三元运算符) 表达式?语句1:语句2

7. , 运算符

  • 可以使用 , 同时声明多个变量并赋值

8.运算符的优先级

  • 可以查运算符优先级表,要是运算符优先级一样高,从左往右运算
  • 遇到优先级不清楚的,可以使用括号改变优先级
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值