【JavaScript】等性运算符

本文详细介绍了JavaScript中的等性运算符和全等性运算符的区别,包括!=、==、===和!==的使用规则及类型转换。在比较过程中,等号==会进行类型转换,而全等号===则不进行类型转换,重点讨论了不同类型的值如何进行相等性判断,以及NaN、null和undefined的特殊处理情况。通过示例代码加深理解,帮助开发者更好地掌握JavaScript中的比较运算。
摘要由CSDN通过智能技术生成

等性运算符

!=:非等号,判断两边的运算数是否不等,只有两个运算符的值不相等时返回true;

==:等号,判断两边的运算数的值是否相等,只根据值进行比较,只有两个运算符相等时才返回true;

===:绝对等于(全等号),判断运算符两边的运算数的值和类型是否都相等,只有值和类型都相等的时候才返回true;

!==:不接对等于(非全等号),判断运算符两边的运算数的值和类型是否不相等,值或类型不相等的时候返回true;

非等号 != 与 等号 ==

!= 和 == 在确定运算数是否相等的时,会进行类型转换

执行的类型转换规则为:

1.如果一个运算数为Boolean值,在检查相等性之前,会将其转换为数值Number型。true转换为1,false转换为0;
2. 如果一个运算数是字符串,一个运算数是数字,在检查相等性之前,要尝试把字符串转换为数值Number型;
3.如果一个运算数是对象,一个运算数是字符串,在检查相等性之前,要尝试把对象转换为字符串String型;
4. 如果一个运算数是对象,一个运算数是数字,在检查相等性之前,要尝试把对象转换为数值Number型;

在比较时,还要遵循以下规则:

1.值null和undefined相等;
2.检查相等性时,不能把 null 和 undefined 转换成其他值;
3.如果某个运算数是 NaN,等号将返回 false,非等号将返回 true;
4.如果两个运算数都是对象,那么比较的是它们的引用值,如果两个运算数指向的是同一个对象,那么返回 true,否则false;

示例:

    console.log(5 == 6);		//false
    console.log(5 == 5);		//true
    console.log(5 != 5);		//false
    console.log(5 != 6);		//true
    console.log(1 == true);		//true
    console.log(2 == true);		//false
    console.log(0 == false);		//true
    console.log('1' == true);		//true
    console.log('0' == false);		//true
    console.log('1' == 1);			//true
    console.log('0' == 0);			//true
    console.log(undefined == null);	//true
    console.log(0 == null);			//false
    console.log(undefined == 0);	//false
    console.log(5 == NaN);			//false
    console.log(NaN == NaN);		//false
    console.log(NaN != NaN);		//true
    console.log('NaN' == NaN);		//false

全等号 == 和 === 非全等号

这两个运算符所做的与等号和非等号大体相同,只是它们在检查相等性前,不执行类型转换。

 console.log(5 === 2 + 3);	//true
console.log(5 === 6);		//false
console.log(5 !== 6);		//true
console.log(1 === true);	//false
console.log(0 === false);	//false
console.log('1' === true);	//false
console.log('1' !== true);	//true
console.log('1' === 1);		//false
console.log('0' !== 0);		//true
console.log(undefined === null);	//false
console.log(0 === null);		//false
console.log(undefined === 0);	//false
console.log(5 === NaN);			//false
console.log(NaN === NaN);		//false
console.log(NaN !== NaN);		//true
console.log('NaN' === NaN);		//false

注意:
当运算数的类型不同时,等号 == 在进行相等性检查之前要对运算数类型进行转换,而 与 全等号 === 不需要进行类型转换,这是它们最重要的区别,非等号 != 与 非全等号 *!==*也是如此,需要特别注意。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值