论JavaScript中的 &#34 == &#34 和 &#34 === &#34 的区别 &#171

       在逆战班学习javaScript的第四周,让我们来谈论一下 " == " 和 " === "

1、" == " 相等

       运算符称作相等,用来检测两个操作数是否相等,适用于一般比较,它在运算过程中存在隐式类型转换,且只要一边是数值,就以数值运算,若两边的操作数为对象或者时对象的函数属性时,则比较内存地

     (1)、同值不同类型的比较

          代码如下:
       

var a=10;
var b="10";
console.log(a==b);     // true
console.log(typeof a)  // number
console.log(typeof b)  // string

       详解:因为在此比较过程中a的值得类型为number类型,b的值得类型为string类型,则两者的数据类型不同,此时"=="促使b的值的类型发生了隐式类型转换,转化成number类型,因此内容比较相同,所以返回true。

    (2)、不同值不同类型

          代码如下:
              

// 1 与 true
var a=1;
var b=true;
console.log(a==b);   // true
console.log(typeof a);   // number
console.log(typeof b);   // boolean

       详解:因为在此比较过程中a的值得类型为number类型,b的值得类型Boolean类型,则两者的数据类型不同,此时 " == "促使b的值true转换成1(即布尔类型转换成字符类型),即: " 1 " == 1,所以 " == " 再次转换,把"1"转换成1(即字符类型转化成数值类型)

2、"=== " 严格等

       运算符称为:严格等,用来检测两个操作数是否严格相等,它在运算过程中不存在隐式类型转换,除了比较值(也就是内容)还比较类型,且只要类型不匹配就返回false
    (1)、同值同类型

          代码如下:
              

// 1 与 1
var a=1;
var b=1;
console.log(a===b);    // true
console.log(typeof a)  // number
console.log(typeof b)   // number

       详解:此时比较过程中a的值为1,且类型为number,b的值为1,且类型为number,所以返回ture。

       (2)、不同值不同类型

          代码如下:
              

// 1 与 true
var a=1;
var b=true;
console.log(a===b);    // false
console.log(typeof a);   // number
console.log(typeof b);   // boolean

       详解:此时比较过程中a的值为1,且类型为number,b的值为true,且类型为Boolean,由于两个操作数的类型不同,所以返回false。

综上所述可得:

        区别一: " == "在比较过程中存在隐式类型转换,而 " === " 在比较过程中不存在隐式类型转换。
        区别二: " == "在比较过程中值比较数值(内容),而 " === " 在比较过程中不仅比较数值(内容)还比较类型。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值