• 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            
    
    
    
    
    
  • 相关阅读:
    赋值问题
    构造方法的作用
    this的使用
    三目运算符和形参的使用
    构造方法作用:给所有对象进行相同的初始化操作
    成员变量和局部变量
    相关开发的书籍名汇集
    html ---- web sql 例子
    让input表单输入框不记录输入过信息的方法
    css实现两端对齐的3种方法
  • 原文地址:https://www.cnblogs.com/siwy/p/5314380.html
Copyright © 2020-2023  润新知