Javascript中"=="和"==="的区别

EddieGDY

谈谈对于Javascript中==“和”===的区别 有不正确的请大家指导评论

首先 先要知道 ==“和”===的概念
两者都是关系运算符 ,结果为布尔值true和false

===叫做严格运算符
== 叫做相等运算符

区别
==表示只要值相等即为真true (单纯地比较值)
===不仅要求值相等,两边的类型也要相同(不仅要比较值还要比较数据类型)

先从 “==” 叫做相等运算符"来说
1 如果 == 两边的值是相同类型会进行===比较返回的是
===的值
2如果 == 两边的值类型不同,也有可能返回true

1 == "1"            // true

3如果一个值是null另一个值是undefined返回true

null == null            // true
undefined == undefined  // true
console.log(null==undefined)  //结果为true

4 如果一个值是string类型另一个是number类型会先把string类型转化成number类型在进行比较

console.log("1"==1);  //结果为true
//string类型"1"转化为数值1  与1进行比较 

5 如果一个值是true 会把他转化成1再比较 false会转化成0

true == "20"            // false
console.log(true=="1");  //这里的输出结果为true
         //因为类型不等  true 转化为数值1  再把"1"转化为1 比较1==1 结果相等为true   
console.log(false=="0");  //这里的输出结果为true 
      //因为类型不等  false 转化为数值0  再把"0"转化为0 比较0==0 结果相等为true 
//

6如果一个值是Object类型 另一个是number类型或者string类型 会把Object 用valueOf()或者toString() 转成原始类型 在进行比较

let arr = [1,2];
let obj = "1,2";
console.log(arr == obj);  //内部执行valueOf(),将arr值转化为原始值,但是arr并没有变化,显示true

再从**"==="**叫做严格运算符说

1要是两个值类型不同,返回false

1 === "1"            // false

2要是两个值都是number类型,并且数值相同,返回true

1 === 1           // true

3要是两个值都是stirng,并且两个值的String内容相同,返回true

'a' === 'a'           // true

4要是两个值都是true或者都是false,返回true

true===true				// true
false===false			// true

5要是两个值都是指向相同的Object,Array或者function,返回true
对于Array,Object等高级类型==‘和’===是没有区别的进行“指针地址”比较
6要是两个值都是null或者都是undefined,返回true

null === null            // true
undefined === undefined  // true   

null === undefined       // false

特别注意:

//无论是==还是===NaN和所有值包括自己都不相等。
NaN == NaN   			// false
NaN === NaN             // false
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值