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);//object
alert(x instanceof Boolean); //true
var y = Boolean(0);
alert(typeof y);//boolean
alert(y instanceof Boolean); //false

首先, typeof 操作符对基本类型返回 “boolean” ,而对引用类型返回 “object” 。其次,由于 Boolean 对象是 Boolean 类型的实例,所以使用 instanceof 操作符测试 Boolean 对象会返回 true ,而测试基本类型的布尔值则返回 false 。

最后总结:只是见过这个题,所以搜索了一下这个知识点,平时根本就没用过这东西。

时间: 2024-10-13 01:04:59

Boolean对象与Boolean原始值的区别的相关文章

JavaScript基础学习之-JavaScript权威指南--3.8.3对象转换成原始值

对象转换成原始值 对象到布尔:比较简单所有对象到布尔都是true,包括包装类new Boolean(false)是一个对象而不是原始值,它将转换为true 对象到数字,对象到字符串比较复杂一些.注意这里讨论的是本地对象,不包含宿主对象(例如浏览器定义的对象) 所有对象继承了两个转换方法. 第一种toString() 它的作用是返回一个反映这个对象的字符串.默认的toString()方法并不会返回一个有趣的值. 很多类定义了特定版本的toString()方法: 数组的toString()方法将每个

深刻理解Boolean对象值 和原始值

首先是要理解运算符 ||是这样运算的:从第一个开始,遇到有意义的返回,否则返回最后一个表达式(注意不一定是Boolean值):  &&是这样运算的:从第一个开始,遇到无意义的返回,否则返回最后一个表达式(注意同上):  !是这样运算的:对表达式的值取非(注意不是对表达式). 然后再试着 看看下面的代码: var ob1 = new Boolean(false); var ob2 = (ob1&&true); var ob3 = (true&&ob1); va

标准库》第三章 包装对象和Boolean对象

第三部分  标准库 ***************第三章   包装对象和Boolean对象******************* 一.包装对象的定义[1]有人说,JavaScript语言"一切皆对象",数组和函数本质上都是对象,就连三种原始类型的值--数值.字符串.布尔值--在一定条件下,也会自动转为对象,也就是原始类型的"包装对象". 所谓"包装对象",就是分别与数值.字符串.布尔值相对应的Number.String.Boolean三个原生对象

javascript 学习总结(三)Boolean对象

Boolean对象 /* 创建 Boolean 对象的语法: new Boolean(value); //构造函数 Boolean(value); //转换函数 参数 value 由布尔对象存放的值或者要转换成布尔值的值. 返回值 当作为一个构造函数(带有运算符 new)调用时,Boolean() 将把它的参数转换成一个布尔值,并且返回一个包含该值的 Boolean 对象. 如果作为一个函数(不带有运算符 new)调用时,Boolean() 只将把它的参数转换成一个原始的布尔值,并且返回这个值.

浏览器端-3WSchool-JavaScript:JavaScript Boolean 对象

ylbtech-浏览器端-3WSchool-JavaScript:JavaScript Boolean 对象 1.返回顶部 1. Boolean 对象 Boolean 对象表示两个值:"true" 或 "false". 创建 Boolean 对象的语法: new Boolean(value); //构造函数 Boolean(value); //转换函数 参数 参数 value 由布尔对象存放的值或者要转换成布尔值的值. 返回值 当作为一个构造函数(带有运算符 new

JS中的Boolean对象

使用new操作符和Boolean(value)构造函数时,得到的并不是原始的true或false,而是一个对象,JS将对象视为真(true) var oBooleanTrue = new Boolean(true); var oBooleanFalse = new Boolean(false); console.log(oBooleanTrue); console.log(typeof oBooleanTrue); if(oBooleanFalse){ console.log("I an ser

javascript学习------Number对象,Boolean对象

Math对象: 该对象提供了大量的数学常量和数学函数. 使用Math对象时,不应该使用new关键字创建对象,而应直接使用. 如: Math.PI; 例子:随机产生指定位数的验证码 Number对象的创建: 1. var num = new Number(object); 2. var num = Number(object); Number对象的属性: 1.MAX_VALUE属性 2.MIN_VALUE属性 3.NEGTIVE_INFINITY属性:负无穷大 4.POSITIVE_INFINIT

13 JavaScript Array对象&Boolean对象&Math对象

万物皆对象,数组是对象,数组可以存储元素,函数,数组等对象 创建数组的三个方式: 常规方式:var myCars = new Array(); 简介方式:var myCars = new Arrray("Benz","BMW",“Audi”); 字面:var Array = ["Benz","BMW","Audi"]; <script> var i; var myCars = new Array

论javascript中的原始值和对象

javascript将数据类型分为两类:原始值(undefined.null.布尔值.数字和字符串),对象(对象.函数和数组) 论点:原始值不可以改变,对象可以改变:对象为引用类型: '原始值不可以改变'不可以改变,如果动脑筋的同学肯定会怀疑了,你们字符串可以改变啊,不信你瞅下面的 var a = 'aa'; alert(a.toUpperCase());//弹出 AA 其实,这些只是表面现象,原始值字符串'a'其实并未发生改变,只是拷贝了一份然后对新的拷贝使用'toUpperCase'函数而已