JavaScript比较运算符和逻辑运算符

一、一元运算符

 

1、++ / --

①a =++i:运算符在前面 所以会先执行运算 然后在赋值 (先自增,然后参与预算)

②a =i++:从走到右计算 所以会先赋值,在执行++运算(先参与运算,然后自增)

        let num = 1
        console.log(num++ + 5);//6 
        console.log(num);//这里已经num已经变成2
        console.log(++num + 5);//8 上面的num++会将num变成2
        console.log(num);//3
        let n = 1
        console.log(n++ + ++n + n);//7

二、比较运算符

1、==:值相等

普通的相等性检查 == 存在一个问题,它不能区分出 0false,也同样无法区分空字符串和 false

2、===:全等符号

严格相等运算符在进行比较时不会做任何的类型转换。,指和类型都相等

同样的,与“不相等”符号 != 类似,“严格不相等”表示为 !==

3、字符串的比较

首先比较两个字符串的首位字符大小

如果一方字符较大(或较小),则该字符串大于(或小于)另一个字符串。算法结束

否则,如果两个字符串的首位字符相等,则继续取出两个字符串各自的后一位字符进行比较

⭐⭐例子:console.log('2' > '12'); 返回的true 原理和上面相同 ⭐⭐

4、不同类型间的比较

当对不同类型的值进行比较时,JavaScript 会首先将其转化为数字(number)再判定大小。(隐式转化)

alert( '2' > 1 ); // true,字符串 '2' 会被转化为数字 2
alert( '01' == 1 ); // true,字符串 '01' 会被转化为数字 1

对于布尔类型值,true 会被转化为 1false 转化为 0

alert( true == 1 ); // true
alert( false == 0 ); // true

5、NaN 是未知数,所以两个未知数是不相等的 所以NaN==NaN ,NaN===NaN都是false

6、undefined 和null

当使用严格相等 === 比较二者时,它们不相等,因为它们属于不同的类型。

当使用非严格相等 == 比较二者时,JavaScript 存在一个特殊的规则,会判定它们相等。它们俩就像“一对恋人”,仅仅等于对方而不 等于其他任何的值(只在非严格相等下成立)。

当使用数学式或其他比较方法 < > <= >= 时:null/undefined会被转化为数字:null被转化为0undefined被转化为NaN`。

7、undefined 不应该被与其他值进行比较

alert( undefined > 0 ); // false (1)
alert( undefined < 0 ); // false (2)
alert( undefined == 0 ); // false (3)


三、逻辑运算符

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值