Boolean 类型转换
原文作者: louis
原文链接: http://louiszhai.github.io/2015/12/11/js.boolean/
语法
众所周知, JavaScript有五个基本的值类型:number、string、boolean、null和undefined。除了null和undefined以外,其他三个具有所谓的基本包装对象。可以使用内置构造函数Number()、String()、Boolean()创建包装对象。
boolean是JS的6种数据类型(number,string,object,boolean,null,undefined)之一,有且只有两种值:true和false
1.使用Boolean(value)方法可以强制转换任意值为boolean类型,除了以下六个值,其他都是自动转为true:
- undefined
- null
- -0
- +0
- NaN
- ‘’(空字符串)
Boolean(undefined) // false
Boolean(null) // false
Boolean(0) // false
Boolean(NaN) // false
Boolean('') // false
- 1
- 2
- 3
- 4
- 5
2.对象的转换规则
所有对象的布尔值都是true,甚至连false对应的布尔对象也是true。
请注意,空对象{}和空数组[]也会被转成true。
Boolean(new Boolean(false))// Boolean对象会转成true
Boolean([]) // 空数组会转成true
Boolean({}) // 空对象会转成true
- 1
- 2
- 3
3.其中有一些让人困惑的地方
&& 表达式从第一个开始,遇到值为false的表达式,则返回表达式本身,否则返回最后一个表达式
|| 和 ! 逻辑运算符原理类似
var obj = new Boolean(false);
console.log(obj && true);//true
console.log(true && obj);//false
- 1
- 2
- 3
因此,第二个console实际上打印的是obj对象的值,即false
------------------------------------------------------------------------------
补充:number类型除了0对应false外,其他都对应true
Boolean 类型转换的更多相关文章
- javascript于boolean类型转换,运营商&&和|| 返回值
javascript它是弱类型语言,不管是什么类型的数据可以被转换成boolean种类.转换规则如下面的: 数据类型 转换为boolean后的值 NAN ...
- js值类型转换(boolean/String/number),js运算符,if条件,循环结构,函数,三种弹出框
js值类型转换 number | string | boolean boolean类型转换 num = 0; var b1 = Boolean(num); console.log(b1) 转化为数字类 ...
- Boolean类源码分析
Boolean类里面的常量: Boolean.TRUE:这个是调用Boolean的构造函数,新建了一个Boolean对象,所以TRUE是Boolean类型的.用来避免每次都创建新的Boolean对象, ...
- js运算符及数据类型转换(二)
1.一元运算符+.-[将其它类型转化为number类型,相当于调用了Number()函数]var num = +('hello') NaN typeof num->numbernum = + ...
- JavaScript类型转换总结与常见情况解析
类型转换是将值从一种类型转换为另一种类型的过程(比如字符串转数字,对象转布尔值等) 一.类型转换的分类 类型转换可以分为隐式类型转换和显式类型转换. 二者的区别显而易见:我们能够从代码中看出哪些地方是 ...
- 《JavaScript高级程序设计 第3版》-学习笔记-1
P1-P30页 1.<script>标签的属性 async:async(html) | async="async"(xhtml),表示立即下载脚本,但不马上执行(执行 ...
- 类型 - PHP手册笔记
类型简介 PHP 支持 8 种原始数据类型. 四种标量类型: boolean(布尔型,不区分大小写) integer(整型) float(浮点型,也称作double) string(字符串) 两种复合 ...
- PHP错误代号列表
代号 代号 语法 参考 T_ABSTRACT abstract 抽象类(自 PHP 5.0.0 起可用) T_AND_EQUAL &= 赋值运算符 T_ARRAY array() array( ...
- Newtonsoft.Json 的高级用法
Ø 简介 接着前一篇http://www.cnblogs.com/abeam/p/8295765.html,继续研究 Newtonsoft.Json 的一些高级用法.主要包括: 1. JSON ...
随机推荐
- Winows + VSCode + Debug PHP
一.环境 环境:Win10 二.软件 1.安装VSCode 下载地址:https://code.visualstudio.com/Download 2.PHP 代码包 版本:php-7.2.9-Win ...
- 【Numpy应用】--对于图片处理的机器学习库的应用
一.思路 二.代码: #coding:utf-8 import numpy as np import PIL.Image as Image import pickle as p import os c ...
- springboot~@Valid注解对嵌套类型的校验
@Valid注解可以实现数据的验证,你可以定义实体,在实体的属性上添加校验规则,而在API接收数据时添加@valid关键字,这时你的实体将会开启一个校验的功能,具体的代码如下,是最基本的应用: 实体: ...
- [开发技巧]·Numpy广播机制的深入理解与应用
[开发技巧]·Numpy广播机制的深入理解与应用 1.问题描述 我们在使用Numpy进行数据的处理时,经常会用到广播机制来简化操作,例如在所有元素都加上一个数,或者在某些纬度上作相同的操作.广播机制很 ...
- Docker最全教程之使用Tencent Hub来完成CI(九)
使用Tencent Hub来完成CI 关于Tencent Hub Tencent Hub是腾讯出品的DevOps服务.主要提供多存储格式的版本管理,支持Docker Image.Binary.Helm ...
- 痞子衡嵌入式:ARM Cortex-M内核MCU开发那些事 - 索引
大家好,我是痞子衡,是正经搞技术的痞子.本系列痞子衡给大家介绍的是ARM Cortex-M内核微控制器相关知识. ARM公司从2004年开始推出Cortex-M系列内核,迄今Cortex-M家族已经包 ...
- 用.net写Textbox控件关于数字的判断的二则方法
方法一.使用textboxSelected事件进行判断首界面源码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitiona ...
- ajax的嵌套需要注意的问题
当我们要嵌套ajax的时候,需要注意 异步/同步 的处理,一般是要设置成同步,如果是异步,那么被嵌套的ajax的操作很可能获取不到想要的值,因为他可能比嵌套他的ajax跑的更早 在ajax中有一个as ...
- JAVA_新建一个方法并且求三个数中的最大值
package wac.wev.as;//新建一个方法在求最大值import java.util.Scanner; public class MaxLian {public static void m ...
- 2019/1.7 js面向对象笔记
面向对象 1.构造函数里的属性怎么看?看this,谁前面有this谁就是属性. num不是属性,是私有作用域下的私有变量. 2.如何查找面向对象中的this 1.构造函数的this指向实例对象 2.如 ...