zoukankan      html  css  js  c++  java
  • javascript中===与==

    == equality 等同,=== identity 恒等。
    ==, 两边值类型不同的时候,要先进行类型转换,再比较。
    ===,不做类型转换,类型不同的一定不等。

    类型转换规则:
    Boolean>number:false>0,true>1;
    number+string/object>number;
    string+object>string; (toString)

    特殊的比较:
    null 和 undefined 是相等的。
    null 和 undefined 不会转换为任何其他类型.
    如果任何一个操作的结果为 NaN,那么相等比较返回 false,不相等比较返回 true。
    注意,即使两个操作数都为 NaN,返回结果一样是 false,也就是说,NaN 不等于 NaN。
    如果两个操作数都是对象,那么比较它们引用的值,如果引用同一个对象,那么,返回真,否则,返回假。

    null,undefined的区别:和数字运算时,10 + null结果为:10; 10 + undefined结果为:NaN;

    注意:false,0,"",null,undefined在if语句中做判断,都会执行false分支,而"0"," "则是执行true分支。
    !逻辑非,也会按上面的规则取值后,再取反

     1 alert(true == 2); //false
     2 
     3 var a = {};alert(a == "[object Object]");//true
     4 
     5 alert("0" == false); //true
     6 alert(!"0" == false ); //true
     7 
     8 alert(Number("	") ); //0
     9 alert(parseInt("	") ); //NaN
    10 alert("	" == false); //true,说明"	"通过Number()函数转换成数值
    11 
    12 alert(!"	" == false); //true
    13 
    14 alert("" == 0);//true
    15 alert("0" == 0); //true
    16 alert("0" != "");//true
    17 alert("	" != "0");//true
    18 
    19 alert(null == undefined);//true
    20 alert((10 + null)==(10 + undefined));//false
  • 相关阅读:
    生成PDF文档
    2016 百度研发岗面试总结
    有趣的数
    2016阿里校招python研发面试
    python 快排,堆排,归并
    三种简单的排序写下贴上
    BestCoder Round #47 1003
    c++ 适配器
    微信公众平台-超级大赛问题汇总1
    正则表达式简单总结
  • 原文地址:https://www.cnblogs.com/guodefu909/p/3262828.html
Copyright © 2011-2022 走看看