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

原文地址:https://www.cnblogs.com/blackheartinsunshine/p/6757429.html