笔记-js高级程序设计-5.引用类型-包装类型

43 阅读1分钟

包装类型

在js中对于基本类型,有其对应的包装类型。

var s1 = 'Hello'
ve s2 = s1.substring(2)

以上一段代码在开始看的时候可能有些不明白,为什么我创建了一个基本类型的字符串,但却可以调用其包装类才有的substring方法。

对于String,Number,Boolean对应的基本类型,在读取的时候都会经过三个步骤:

  1. 创建 String 类型的实例 var s1 = new String('Hello')
  2. 在实例上调用指定的方法 var s2 = s1.substring(2)
  3. 销毁这个实例 s1 = null 由于在读取过程中创建的对象都是即时销毁的,所以为基础类型添加属性和方法的操作不可用。
var s1 = 'Hello'
s1.color = 'red'
alert(s1.color)    //undefined

Object构造函数也会根据传入的类型返回基本包装类型的实例。

使用 new 调用基本包装类型的构造函数和直接调用同名的转型函数是不同的。

Boolean

建议永远不要使用Boolean对象,因为会造成一些误解:

var b = new Boolean(false)
// b是一个Boolean类型的实例,是一个对象,只要不是空对象,下面都会识别为true
var res = b && true    // true

Number和String 详细方法可参考MDN

内置对象

Global对象

  1. URI编码方法 编码:encodeURI/encodeURIComponent/escape , 解码:decodeURI/decodeURIComponent/unescape
  2. eval方法 当解析器发现代码中的调用eval方法时,会将传入的参数当作实际的es语句来解析。然后把执行结果插入到原位置。

在web浏览器上将Global对象作为window对象的一部分加以实现。

Math