zoukankan      html  css  js  c++  java
  • JavaScript中值的固有布尔属性及其比较

     

    固有的布尔属性

    值在js中存在一个固有的布尔值。以下的值总是false的,他们是:

    false

    0

    ""  (空字符串)

    null

    undefined

    NaN (Not-a-Number)

    另外,有些值是true的,"0" (0在引号中),"false"(false在引号中),空函数,空数组,空对象。

    1. var a = !!(0); // variable is set to false  
    2. var b = !!("0"); // true 

    固有false值的比较

    false、 0 、""  (空字符串) 是相等的,并且可以进行比较

    1. var c = (false == 0); // true  
    2. var d = (false == ""); // true  
    3. var e = (0 == ""); // true 

    而,null 和 undefined 和其他所有的值比较都是不相等的。

    1. var f = (null == false); // false  
    2. var g = (null == null); // true  
    3. var h = (undefined == undefined); // true 
    4. var i = (undefined == null); // true 

    而,null 和 undefined 和其他所有的值比较都是不相等的。

    最后,NaN和任何值比较都是不相等的,包括自己。

    1. var j = (NaN == null); // false  
    2. var k = (NaN == NaN); // false 

    另外,必须明确typeof(NaN)返回的是 "number" ,在核心js中有个函数isNaN()可以去直接判断这个值是否是NaN

    严格等于

    ==是比较两个值

    ===也是一样的功能,但是===要求的比较严格

    ==会在把两个值自动转换成同类型后再比较,而===在比较前不转换

    所以严格等于时候,flase值的比较和普通等于的比较结果有不同,应注意区分

    1. var l = (false == 0); // true  
    2. var m = (false === 0); // false  

     

    参考文章:http://www.sitepoint.com/javascript-truthy-falsy/ 

     

     

  • 相关阅读:
    cookie的过期时间
    Cookie的使用及位置
    用存储过程进行的查询拼接
    验证码的使用
    SQLHelper
    App_code的引用
    GridView使用
    javascript、ajax验证
    数据库小结(三)
    数据库操作(七)存储过程
  • 原文地址:https://www.cnblogs.com/yingzi/p/2598664.html
Copyright © 2011-2022 走看看