包装类型
在js中对于基本类型,有其对应的包装类型。
var s1 = 'Hello'
ve s2 = s1.substring(2)
以上一段代码在开始看的时候可能有些不明白,为什么我创建了一个基本类型的字符串,但却可以调用其包装类才有的substring方法。
对于String,Number,Boolean对应的基本类型,在读取的时候都会经过三个步骤:
- 创建 String 类型的实例
var s1 = new String('Hello') - 在实例上调用指定的方法
var s2 = s1.substring(2) - 销毁这个实例
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对象
- URI编码方法 编码:encodeURI/encodeURIComponent/escape , 解码:decodeURI/decodeURIComponent/unescape
- eval方法 当解析器发现代码中的调用eval方法时,会将传入的参数当作实际的es语句来解析。然后把执行结果插入到原位置。
在web浏览器上将Global对象作为window对象的一部分加以实现。