zoukankan      html  css  js  c++  java
  • Js中的假值_ES5中定义的ToBoolean方法强制类型转换后值为false

     你不知道的Javascript(中)--ToBoolean

    javascript中的值可以分为以下两类:

    1.可以被强制类型转换为false的值

    2.其他(被强制类型转换为true的值)

    假值---以下是js的ES规范中定义了的假值:

    • undefined
    • null
    • false
    • +0、-0和NaN
    • ""-空字符串

    假值的不二强制类型转换结果为false。一般除假值以外的都是真值。

    假值对象--封装了假值的对象

    eg:

    var a=new Boolean(false);

    var b=new Boolean(0);

    var c=new Boolean("");

    【注】规范中规定所有对象都是真值”,所以即使封装的内容是假值,这些对象依旧是真值。

    即:Boolean(a&&b&&c)==>true

    【注意】在js代码中会出现对象判断为假的用法,但它实际上不属于javascript语言的范畴。跟浏览器有关。浏览器在某些情况下在常规js语法上自己穿件了一些外来值,这些就是"假值对象"。
    eg:

    document.all,是一个类数组对象,包含了页面上所有元素,由DOM提供(而不是由js引擎提供)给js程序使用。
    用document.all在浏览器上强制类型转换后的结果,可被用来判断是否是ie(老版本的),这种判断也许在以后会因为ie对document.all的支持的结束而出现隐患。

    真值--假值列表之外的值

    eg:

    var a="false";     //字符串false --true

    var a="0";      //字符串0  --true

    var a="''";      //字符串'   --true

    Boolean(a&&b&&c)==>true。【注】只有空字符串转换后是false。

    eg:

    var a=[];       //空数组 --true

    var b={};      //空对象 --true

    var c=function(){};  //空函数 --true

    Boolean(a&&b&&c)==>true

  • 相关阅读:
    Abp通用配置模块的设计
    Windbg分析高内存占用问题
    IdentityServer4 知多少
    找不到对象,『空对象模式』来帮忙
    EF Core中避免贫血模型的三种行之有效的方法(翻译)
    Razor Page Library:开发独立通用RPL(内嵌wwwroot资源文件夹)
    .NET Core 源码导航(按程序集链接)
    ASP.NET Core Web App应用第三方Bootstrap模板
    给ASP.NET Core Web发布包做减法
    Azure Web连接到Azure MySql Db
  • 原文地址:https://www.cnblogs.com/blackheartinsunshine/p/6757429.html
Copyright © 2011-2022 走看看