zoukankan      html  css  js  c++  java
  • js中== ===的区别

    js中== ===的区别

    js是弱类型语言,这两个符号都是判断值是否相等的操作符,== 与 === ,两者相比,== 会做一定的类型转换;而 === 不做类型转换,所接受的相等条件更加严格。

    等号==

     比较之前先进行隐式转换,类型相同与否无关,若类型一样,则和===比较一样进行严格比较。若不一样:

              若是undefined和null(注意:undefined和null属于两种基本数据类型),返回true。

              若一个是Number类型,一个是String类型,则把String类型转换成Number类型比较。如:"1" == 1;

              若有一个为Boolean类型,则把Boolean类型的值转换成Number类型的值来比较,Boolean(2) == 1;Boolean(2) == "1"; //ture

              若一个是Number类型或者String类型,一个是Object类型,先把Object类型转换成基本数据类型,再进行比较。

              注意:a == c; b==c; a == b?不一定,比如:

    1                 var str1 = new String("Hello");
    2                 
    3                 var str2 = new String("Hello"); 
    4                 str1 == "Hello"; 
    5                 str2 == "Hello";
    6                 alert(str1 == str2)            

    恒等号===

    首先判断两个值的类型是否相等,如果不相等,直接返回false:"1" === 1;

    然后,如果类型相同:若是undefined和null,返回true。

              若是Number类型,(1)一般的数值相等返回true,(2)如果一个是NaN,则返回false,两个NaN返回true,(3)0 -0 +0返回true。

              若是String类型,完全相等时返回true。

              若是Boolean类型,相等时返回true。

              若两个变量引用的对象相同,返回true。

             
     1          function aa(name){
     2                     this.name = name;
     3                 }
     4                 var a1 = new aa("wo");
     5                 var a2 = new aa("wo");
     6                 var b = a1;
     7                 var c = a1;
     8                 alert(c === b);          //返回true
     9 
    10                 alert(a1 == a2);              //返回false 
    11           alert(a1 === a2);             //返回false 
    12           alert(a1.name == a2.name);    //返回false 
    13           alert(a1.name === a2.name);  //返回false            
    
    
    
    
    
  • 相关阅读:
    Excel 2010 对号叉号怎么打出来
    Excel 2010 如何在Excel的单元格中加入下拉选项
    android开发之数据库游标未关闭导致
    如何阅读Android系统源码-收藏必备
    2016年3月第二次更新,1000多册好书上架
    armeabi和armeabi-v7a(转)
    避免3种响应式设计灾祸
    ibatis学习
    关于图片无缝拼接的学习(PTGui)
    No implementation found for long com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache.Create()
  • 原文地址:https://www.cnblogs.com/siwy/p/5314380.html
Copyright © 2011-2022 走看看