`
zhouyrt
  • 浏览: 1161993 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JavaScript中奇葩的假值

 
阅读更多

通常在以下语句结构中需要判断真假

  1. if分支语句
  2. while循环语句
  3. for里的第二个语句

if (boo) {
    // do something
}
 
while (boo) {
    // do something
}

JavaScript中有 6 个值为“假”,这六个值是

  1. false
  2. null
  3. undefined
  4. 0
  5. '' (空字符串)
  6. NaN

 

这里面 false 本身是布尔类型,其它 5 个则不是。

除了这 6 个外,其它均为“真” ,包括对象、数组、正则、函数等。注意 '0'、'null'、'false'、{}、[]也都是真值  。

 

虽然这六个值都为“假”,它们之间并非都相等

console.log( false == null )      // false
console.log( false == undefined ) // false
console.log( false == 0 )         // true
console.log( false == '' )        // true
console.log( false == NaN )       // false
 
console.log( null == undefined ) // true
console.log( null == 0 )         // false
console.log( null == '' )        // false
console.log( null == NaN )       // false
 
console.log( undefined == 0)   // false
console.log( undefined == '')  // false
console.log( undefined == NaN) // false
 
console.log( 0 == '' )  // true
console.log( 0 == NaN ) // false

对于“==”,以上得出下列结论

  • false 除了和自身比较为 true 外,和 0,"" 比较也为 true
  • null 只和 undefined 比较时为 true, 反过来 undefined 也仅和 null 比较为 true,没有第二个
  • 0 除了和 false 比较为 true,还有空字符串 ''" 和空数组 []
  • 空字符串 '' 除了和 false 比较为 true,还有一个数字 0

 

当然,对于这一切,查看下规范是最踏实的,ES里的ToBoolean阐述了所有情形


 

相关:

JavaScript中的隐式类型转换

 

  • 大小: 40.9 KB
分享到:
评论

相关推荐

    JavaScript中奇葩的假值示例应用

    JavaScript中的假值指的是在布尔上下文中被解释为false的值。在JavaScript中,有六种基础数据类型被认定为假值,它们分别是:false、null、undefined、0(数字零)、''(空字符串)以及NaN(不是一个数字)。这些...

    javaScript中的空值和假值

    JavaScript 是世界上最流行的编程语言...javaScript中有五种空值和假值,分别为false,null,undefined,“”,0。从广义上来说,这五个值都是对应数据类型的无效值或空值。 这五个值的共同点是在执行if语句时都会执行

    GPS RTK测量中假值现象预防分析.pdf

    在GPS RTK测量过程中,可能会出现“假值”现象,这指的是测量结果中出现与实际情况不符的错误数据。这种现象通常是由于多种因素共同作用导致的,包括但不限于: 1. 参数转换误差:WGS 84是国际通用的坐标系统,但在...

    javascript中为5种为假的情况测试

    总之,理解JavaScript中的假值可以帮助开发者编写更清晰、更可靠的代码,避免因布尔转换错误导致的意外行为。在日常编程中,一定要注意这些潜在的陷阱,并确保对这些特殊值进行适当的处理。通过阅读《javascript_...

    JavaScript.The.Good.Parts阅读笔记(一)假值与===运算符

    假值是指在JavaScript中会被自动转换为false的值,而全等运算符用于比较两个值是否严格相等,不涉及类型转换。 首先,我们来详细解释JavaScript中的假值。在JavaScript中,以下值会被视为假值(falsy): - 0...

    Advanced JavaScript Essentials v1.pdf

    文档详细讨论了JavaScript中的真值(truthy)和假值(falsey)的概念,并通过测试展示了JavaScript在比较时的隐式类型转换。通过项目实践,学习者可以深入理解对象的真值行为和等价性测试。 4. 构造JavaScript对象 ...

    Javascript 中的false零值nullundefined和空字符串对象

    ### JavaScript中的False、零值、Null、Undefined及空字符串详解 #### 一、引言 JavaScript作为一种广泛使用的脚本语言,在Web开发中扮演着至关重要的角色。它支持动态类型和弱类型的特性,使得开发者能够快速地...

    Javascript中的false、0、null、undefined和空字符串对象[归类].pdf

    在JavaScript中,`false`、`0`、`null`、`undefined`和空字符串`""`是五个特殊的值,它们在编程中扮演着不同的角色。理解它们的类型、等价性和在条件语句中的行为是至关重要的。 首先,让我们看看它们的类型: - `...

    03-JavaScript基础.pptx

    在JavaScript中,true、非零数字、非空字符串和非空对象被视为真值,而false、0、空字符串、空对象和undefined被视为假值。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一...

    JavaScript基础重点(必看)_.docx

    在语法方面,JavaScript中有两种基本的数据类型:原始值和对象。原始值包括布尔值、数字、字符串、null和undefined。原始值之间的比较是直接的,而对象则根据其内存地址进行比较,这意味着即使是两个看似相同的空...

    JavaScript帮助文档1

    3. **写在外部文件中**:将JavaScript代码存储在一个单独的`.js`文件中,并通过`<script>`标签引用。 ```html <script type="text/javascript" src="some.js"> ``` #### 四、JavaScript基础 1. **与用户交互的...

    javascript运算符-规律运算符全面解析_.docx

    new Boolean(false)`也会返回`false`,因为这些都是JavaScript中的假值。另一方面,`!!{}`、`!![]`以及`!!new Boolean(null)`返回`true`,因为对象、数组和非空的Boolean对象被视为真值。规律非运算符常用于提前结束...

    现代 JavaScript 参考

    在JavaScript中,真值(truthy)和假值(falsy)用于描述在布尔上下文中被视为true或false的值。 **静态方法(Static methods)** 静态方法是直接定义在类上的方法,它们不依赖类的任何实例,可以通过类名直接调用...

    浅谈JavaScript中null和undefined

    在JavaScript中,假值是在布尔上下文中被自动转换为false的值。因此,在需要布尔值的场合,如if语句中,null和undefined都会被解释为false。 2. null和undefined都不包含任何属性或方法。它们都是原始值,并且在...

    跟我学习javascript的隐式强制转换

    6. 在JavaScript中,有七个假值:false、0、-0、""(空字符串)、NaN、null、undefined。除此之外的其他值在布尔上下文中都被认为是真值(truthy)。 掌握JavaScript中的隐式强制转换对理解语言中的运算行为和避免...

Global site tag (gtag.js) - Google Analytics