常用的原生函数有:
• String()
• Number()
• Boolean()
• Array()
• Object()
• Function()
• RegExp()
• Date()
• Error()
• Symbol()——ES6 中新加入的!
实际上,它们就是内建函数。
原生函数可以被当作构造函数来使用,但其构造出来的对象可能会和我们设想的有所出入:
var a = new String( "abc" );
typeof a; // 是"object",不是"String"
a instanceof String; // true
Object.prototype.toString.call( a ); // "[object String]"
通过构造函数(如new String(“abc”))创建出来的是封装了基本类型值(如”abc”)的封装对象。
注意:typeof 在这里返回的是对象类型的子类型。
可以这样来查看封装对象:
console.log(a)
由于不同浏览器在开发控制台中显示对象的方式不同(对象序列化 , object serialization), 所以上面的输出结果也不太一样。
注意:new String("abc")
创建的是字符串 “abc” 的封装对象,而非基本类型值 “abc”。