摘要:基本值原始值原始的布尔类型有两个值和。创建布尔值的方式直接用字面量用函数,将其他任意值转换成对应的原始布尔值。使用两次非运算符,将其转换成对应的布尔类型。下面来看一些将其他类型转换成布尔类型的例子。
基本值(原始值)
原始的布尔类型boolean有两个值: false 和 true。
> typeof false "boolean" > typeof true "boolean"创建布尔值的方式
直接用字面量
var a = false; var b = true;
用Boolean函数,将其他任意值转换成对应的原始布尔值。
> a = Boolean() false > a = Boolean(true) true布尔类型与其他类型之间的转换 其他类型值转换成布尔值的对应关系
对应关系表如下所示:
其他类型值 | 转换成的布尔值 |
---|---|
undefined | false |
null | false |
布尔值 | 不用转换 |
数字 | 0,NaN转化成false,其他数字类型转换成true |
字符串 | 只有空字符串""转换成false,其他都转换成true |
对象 | 全部转换为true |
根据上表可总结为,js中五中基本数据类型undefined、null、布尔型、数字和字符串,外加对象共六中类型中,只有undefined、null、布尔值中的false、数字中的0和NaN,和字符串中的空字符串"",共计6种值被转换成false, 其余的都被转换成true。
被转换成false的集合叫假值,被转换成true的集合就真值。
由上可知,以下为假值。
undefined, null
false
0, NaN
""
所有其他的值,包括对象等都是真值。
因为undefined和null都是假值,所以我们通常用于判断一个变量x是否有值,
if (x){ // x 有值 }else{ // x 无值 }
需要注意,上述判断会把所有的假值解释成“没有值”,而不仅仅是undefined和null.
如当x= 0时,上述判断会认为x没有值,实际上x是有值的,且为0.
所以上述判断要谨慎使用。
javscript中,凡是需要布尔值的地方,都可以提供任意类型的值,它们会自动被转化成相应的布尔值。例如条件表达式或逻辑表达式中。
手动转换手动将其他类型的值转换成布尔值有以下三种方法
1. Boolean(value) //使用Boolean函数,此处作为一个普通函数被调用,而不是构造函数。 2. value ? true : false 3. !! value //使用两次非运算符,将其转换成对应的布尔类型。
三种方法都很常用,其中最好使用Boolean(value)这个方法,直观又方便。
下面来看一些将其他类型转换成布尔类型的例子。
undefined
> Boolean(undefined) false
null
> Boolean(null) false
boolean
> Boolean(false) false > Boolean(true) true
数字
> Boolean(0) false > Boolean(133) true > Boolean(NaN) false
字符串
> Boolean("") false > Boolean("dd") true > Boolean(" ") //注意,空格字符串不是空字符 true > Boolean("false") true
对象
所用的对象都转化成 true.
> Boolean([]) true > Boolean({}) true > Boolean(new Boolean(false)) //new Boolean(false)得到是一个boolean型object. true > Boolean(new Number(0)) //同上 true > Boolean(new String("")) //同上 true
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/91080.html
摘要:返回对象的原始值。函数函数有两种调用方式作为普通函数调用,作为构造函数调用,函数作为普通函数调用语法参数可选,任意类型的值。 Boolean对象 Boolean对象是一个包装了布尔值的对象(实例). 查看Boolean对象初始值的方法 Boolean对象.valueOf() //所有Boolean实例都继承于 Boolean.prototype. Boolean原始值与Boo...
摘要:中有五种基本数据类型,以及一种复杂引用类型数据类型,中还细分了很多具体的类型,比如等等中又新增了一种类型。类型的数值范围是,超出这个范围的值为,可以使用函数来判断数值是否在范围内。 ECMAScript5中有五种基本数据类型:Undefined,Null,Boolean,Number,String,以及一种复杂(引用类型)数据类型:Object,Object中还细分了很多具体的类型,比...
摘要:同一类的复合类型值两个复合类型对象数组函数的数据比较时,不是比较它们的值是否相等,而是比较它们是否指向同一个对象。宽松相等双等号将执行类型转换原始类型的值原始类型的数据会转换成数值类型再进行比较。 事件这块知识点虽然是老生长谈的,但对于我来说多多整理,多多感悟,温故知新,每次看看这块都有不同的收获.(在这里我不会长篇大论,只会挑重点;具体的小伙伴们自行查找)参考:https://dev...
摘要:同一类的复合类型值两个复合类型对象数组函数的数据比较时,不是比较它们的值是否相等,而是比较它们是否指向同一个对象。宽松相等双等号将执行类型转换原始类型的值原始类型的数据会转换成数值类型再进行比较。 事件这块知识点虽然是老生长谈的,但对于我来说多多整理,多多感悟,温故知新,每次看看这块都有不同的收获.(在这里我不会长篇大论,只会挑重点;具体的小伙伴们自行查找)参考:https://dev...
阅读 1402·2023-04-26 03:04
阅读 2342·2019-08-30 15:44
阅读 3730·2019-08-30 14:15
阅读 3521·2019-08-27 10:56
阅读 2724·2019-08-26 13:53
阅读 2619·2019-08-26 13:26
阅读 3080·2019-08-26 12:11
阅读 3612·2019-08-23 18:21