JavaScript中布尔值为false的几种情况

下面6种值转化为布尔值时为false,其他转化都为true

1、undefined(未定义,找不到值时出现)

2、null(代表空值)

3、false(布尔值的false,字符串"false"布尔值为true)

4、0(数字0,字符串"0"布尔值为true)

5、NaN(无法计算结果时出现,表示"非数值";但是typeof NaN==="number")

6、""(双引号)或‘‘(单引号) (空字符串,中间有空格时也是true

注意空数组空对象,负值转的布尔值时都为true

不同数据类型转化为布尔值的结果
数据类型 转为true的值 转为false的值
Boolean true false
String 任何非空字符串 ‘‘(空字符串)
Number 任何非零数字值(包括无穷大) 0和NaN
Object 任何对象 null
Undefined n/a undefined

对于0, ‘‘, null, undefined, NaN,{}, [], Infinity求布尔值,分别是false false false false false true true true.

因此我们知道的一点是:对象的布尔值是true,即使是对象{}。

"!!"将表达式进行强制转化为bool值的运算,运算结果为true或者false。

原文地址:https://www.cnblogs.com/shqnl/p/11198200.html

时间: 2024-10-08 20:09:48

JavaScript中布尔值为false的几种情况的相关文章

javascript之布尔值

javascript的布尔值只有两个值,保留字true和false. 任意javascript的值都可以转换为布尔值.下面这些值会转换成false: undefined null 0 -0 NaN ""                   //空字符串 所有其他值,包括所有对象(数组)都会转换成true. 来看一个例子,假设变量o是一个对象或是null,可以通过一条if语句来显式地检测o是否是非null值: if(o !== null) ... 不等操作符"!=="

JavaScript中的值类型和引用类型

先抛出一个题目,阿里的笔试面试题(很基础,但确实是阿里的笔试题) var a = {"x": 1}; var b = a; a.x = 2; a = {"x": 3}; console.log(b.x); 大家觉得最后在控制台输出的结果是多少? 如果你答案是2,那你就没必要接下去看了.如果不是.那你就接着看下去来解决你的疑惑吧! JavaScript中的值类型和引用类型 在javascript里面有两种变量类型,一种是值类型,一种是引用类型. 值类型:数值.布尔型.

前端要给力之:语句在JavaScript中的值

文件夹 文件夹 问题是语句有值吗 那么说你骗我咯 有啥米用呢 研究这个是不是闲得那个啥疼 ES5ES6有什么差异呢 结论是ES6是改了规则但更合理 最后不不过if语句 这两天在写语言精髓那本书的第三版,讨论到ES6跟ES5中间对"语句的值"的不同处理.正好Weibo上也有同学对这个问题有兴趣,所以专门整理了这篇. 写博客能够啰嗦点,写书就不行了.所以这篇文章跟书上能看到的还是会不一样的. 问题是:语句有值吗? 非常不幸.我们面临的的确是一门连语句都有值的语言.在JavaScript中.

写代码:列举布尔值是False的所有值

1 # encoding: utf-8 2 3 # 列举布尔值是False的所有值 4 5 print("1. ", bool(0)) 6 print("2. ", bool(-0)) 7 print("3. ", bool(None)) 8 print("4. ", bool()) 9 print("5. ", bool(False)) 10 print("6. ", bool([])

javascript中的true和false

今天遇到一个问题,执行下面的代码返回true还是false?请说明理由 console.log([] == ![]) 在浏览器中运行了一下,发现结果是true.为什么会这样呢?于是查找了相关的资料. 在javascript中0,"", null, unbdefined,NaN,false 为false,其他为true if(0 || "" || null || undefined || NaN || false) { console.log("true&q

JavaScript中Object值合并方法

前言:在日常开发工作中我们可能会遇到js中对象中所有值的复制工作,也有可能是通过electron开发客户端,改版时候面临到的设置合并问题.那么本文将对此做一个简要解决方案的叙述. 介绍:比如有obj1, obj2,我们需要将obj1中的所有与obj2中相同字段相同深度的值copy给obj2,并且需要保持obj2字段结构不变,调用一下方法即可(采用ES6写法). 1 /** 2 * 将src中的数据copy到dist中,并保留dist的结构 3 * @param src 4 * @param di

你知道web项目中Http请求与响应的四种情况吗

[四种情况]: HttpRequest.HttpResponse.HttpServletRequest.HttpServletResponse[什么是HTTP?]超文本传输协议(HyperText Transfer Protocol -- HTTP)是一个设计来使客户端和服务器顺利进行通讯的协议.HTTP在客户端和服务器之间以request-response protocol(请求-回复协议)工作.[Http常用的两个方法]get - 从指定的服务器中获取数据post - 提交数据给指定的服务器

C++中复制构造函数被调用的三种情况

C++中的构造函数 c++中的构造函数分为构造函数,和复制构造函数,相比于构造函数,复制构造函数使用更加方便,快捷.构造函数可以有多个,二复制构造函数只能有一个,因为复制构造函数的参数只能是当前类的一个对象,参数表是固定的,无法重载,若用户没有定义自己的辅助构造函数,系统会自动生成一个复制构造函数,其作用是将参数的之赋予当前的对象.若用户自己定义了复制构造函数,系统则不会生成默认复制构造函数.用户自己定义的复制构造函数功能可以自己构造,不一定执行复制的功能. 复制构造函数同构造函数的功能大体相同

Javascript中null值,特别注意的两点

null 是一个javascript字面量,表示空值,就是没有对象被呈现.他是javascript原始值之一.null值常被放在期望一个对象上,但是不引用任何对象的参数位置,也就是说对象的初始化. 我们看下面的一个例子 Javascript var obj = null; console.log(typeof obj === "object"); // true 我们通过对null的命名描述来理解,null是被期望在一个对象上,可能在javascript的规范中设这么设定的.所以返回一