==和===的区别,Undefined与Null的区别,Undefined为什么“==“Null?

简单说"=="是相同,"==="是严格相同。

"=="需要先进行数据类型判断是否相同。

一、如果数据类型相同,直接进行"==="比较

二、如果数据类型不同,则要

进行数据类型的转换

1.如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。

       console.log(0=='0') //true

2.如果一个值是true则要先转换成1再进行比较,是false要先转换成0。

  console.log(true==1) //true

3.如果一个是对象,另一个是数值或字符串,把对象转换成基础类型的值再比较。(详细去查阅valueOf,toString方法)

var obj = new String('0');    //object
console.log(obj=='0')         //true

4.一个是Null,一个是Undefined,那么相等:

        console.log(null==undefined)//true

Javascript规范中要比较相等性之前,不能将 null 和 undefined 转换成其他任何值,并且规定null 和 undefined 是相等的。null和undefined都代表无效的值。

而且全等于状态下,是false,因为它们不属于同一数据类型。

Null和Undefined的区别:

undefined 表示一个变量自然的、最原始的状态值,而 null 则表示一个变量被人为的设置为空对象,而不是原始状态。所以,在实际使用过程中,为了保证变量所代表的语义,不要对一个变量显式的赋值 undefined,当需要释放一个对象时,直接赋值为 null 即可。

=== 绝对相等,即数据类型与值都必须相等。

       (1)如果类型不同,就一定不相等

  (2)如果两个都是数值,并且是同一个值,那么相等;如果其中至少一个是NaN,那么不相等。(判断一个值是否是NaN,只能使用isNaN( ) 来判断):

     NaN的意思是Not a number,只要isNaN的参数可以被转化为数字那么就是false,反之为true

       var a = '456',age = 18,name='456';
        console.log(isNaN(age));//false
        var b = 10;
        console.log(isNaN(b));//false
        var c = '我是字符串';
        console.log(isNaN(c));//true
        var d = '10';
        console.log(isNaN(d));//false
        var e = undefined;
        console.log(isNaN(e));//true

  (3)如果两个都是字符串,每个位置的字符都一样,那么相等,否则不相等。

        console.log("String"==="string")//false
        console.log("String"==="String")//true

  (4)如果两个值都是true,或都是false,那么相等,否则不相等

        console.log(true===true)//true
        console.log(false===true)//false

  (5 如果两个值都引用同一个对象或函数,那么相等,即两个对象的物理地址也必须保持一致;否则不相等。

  (6)如果两个值都是null,或都是undefined,那么相等,否则不相等

        console.log(undefined===undefined)//true
        console.log(undefined===null)//false

    未来可期  一起加油!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

画大饼之王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值