JavaScript读书笔记(三)布尔值,null,undefined,全局对象,包装对象

参照内容来自《JavaScript权威指南》

布尔值

任意JavaScript的值都可以转换为布尔值。

部分值会被转换为false,其他转换为true。

会被转换为false的有:(1)undefined;(2)null;(3)0或者-0;(4)NaN;(5)"",即空字符串。

所有其他值,包括所有对象(数组)都会转换成true。

false与上面5个可以转换为false的值有时被称为“假值”,其余则称为“真值”。

null和undefined

null:

null,是JavaScript的关键字,常用来描述“空值”。null是一个特殊的对象值,含义是“非对象”,对null执行typeof预算,结果返回字符串“object”。

undefined

undefined不是JavaScript的关键字,是预定义的全局变量,表明变量没有初始化。

如果要查询对象属性或数组元素的值时返回undefined则说明这个属性或元素不存在。如果函数没有返回任何值,则返回undefined。引用没有提供实参的函数形参的值也只会得到undefined。

注:

判断相等运算符“==”认为null和undefined是相等的(要使用严格相等运算符“===”来区分它们)。

null和undefined都不包含任何属性和方法。使用“.”和“[]”来存取这两个值的成员或方法都会产生一个类型错误。

如果将它们赋值给变量或者属性,或将它们作为参数传入函数,最佳选择是使用null。

全局对象

对象类型:对象,数组和函数。对于全局对象,其属性可以在JavaScript程序中直接使用。

当JavaScript解释器启动时(或者任何Web浏览器加载新页面的时候),它将创建一个新的全局对象,并给它一组定义的初始属性:

全局属性,比如undefined、Infinity和NaN

全局函数,比如isNaN()、parseInt()和eval()

构造函数,比如Date()、RegExp()、String()、Object()和Array()

全局对象,比如Math和JSON

对于JavaScript程序,在所有函数的外面,可以使用关键字this来引用全局对象。

例如:var global = this; // 定义一个引用全局对象的全局变量

在客户端JavaScript中,在其表示的浏览器窗口中的所有JavaScript代码中,Window对象充当了全局对象。这个全局Window对象有一个属性(Window),这个属性可以代替this引用自身,即引用全局对象。例如:window.load();

包装对象

JavaScript对象是一种复合值:它是属性或已命名值的集合。通过“.”符号来引用属性值。当属性值是一个函数的时候,称其为方法。例如:a.themethod();(a为对象,themethod()为方法)

而字符串,数字,布尔值都不是对象,可以调用属性的原因为:

字符串可以new String(s)的方式转换成对象,这个对象继承了字符串的方法,并被用来处理属性的引用。一旦属性引用结束,这个新创建的临时对象就会销毁。

数字通过Number()转换成对象,接下来与字符串类似。

布尔值通过Boolean()转换成对象,接下来与字符串类似。

在这三个过程中,创建的临时对象称为包装对象。

注:

(1)null和undefined没有包装对象:访问它们的属性会造成一个类型错误。

(2)包装对象的属性引用结束,这个新创建的临时对象就会销毁。例如:

var a = "watermelon"; //创建一个字符串

a.len = 10; // 为s的某个属性赋值,修改临时对象的属性

var c = a.len; // 查询这个属性

而在最后第三行代码中c最终的值为undefined。因为在第二行引用结束后,该对象就被销毁了,对象已不存在,对象的属性也就不存在。包装对象并没有太多用处。因而不用特别关注包装对象。

(3)可通过String(),Number()或Boolean()构造函数来显式创建包装对象。例如:

var s = "watermelon";

var S = new String(s);

(4)字符串,数字和布尔值的属性都是只读的,可以修改属性,但不可以定义新的属性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值