首页 > 代码库 > Boolean对象与Boolean原始值的区别
Boolean对象与Boolean原始值的区别
我们先来看下面这道题:
var x = new Boolean(false);if (x) { alert(‘hi‘);}var y = Boolean(0);if (y) { alert(‘hello‘); }
最后会弹出什么呢?w3c上说:创建boolean对象有两种语法:
new Boolean(value); //构造函数Boolean(value); //转换函数
当作为一个构造函数(带有运算符 new)调用时,Boolean() 将把它的参数转换成一个布尔值,并且返回一个包含该值的 Boolean 对象。
如果作为一个函数(不带有运算符 new)调用时,Boolean() 只将把它的参数转换成一个原始的布尔值,并且返回这个值。
根据这里来看,上面是使用了new来创建构造函数,那么他返回的是一个对象。当一个值为false的Boolean对象放到条件语句当中的时候,Boolean对象的值会被当作true来计算,但是它本身的值并没有改变,依然是false。
再看下面这个测试:
var x = new Boolean(false);alert(typeof x);//objectalert(x instanceof Boolean); //truevar y = Boolean(0);alert(typeof y);//booleanalert(y instanceof Boolean); //false
首先, typeof 操作符对基本类型返回 “boolean” ,而对引用类型返回 “object” 。其次,由于 Boolean 对象是 Boolean 类型的实例,所以使用 instanceof 操作符测试 Boolean 对象会返回 true ,而测试基本类型的布尔值则返回 false 。
最后总结:只是见过这个题,所以搜索了一下这个知识点,平时根本就没用过这东西。
Boolean对象与Boolean原始值的区别
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。