原生函数
常用的原生函数有:
- String()
- Number()
- Boolean()
- Array()
- Object()
- Function()
- RegExp()
- Data()
- Error()
- Symbol()
封装对象
通过构造函数(如 new String(‘abc’))创建出来的是封装了的基本类型值(如 “abc”)的封装对象。
内部属性
1 | Object.prototype.toString.call( [1,2,3] ); |
封装对象包装
一般情况下,我们不需要直接使用封装对象。最好的办法是让 JavaScript 引擎自己决定什 么时候应该使用封装对象。换句话说,就是应该优先考虑使用 “abc” 和 42 这样的基本类型 值,而非new String(“abc”)和new Number(42)。
如果想要自行封装基本类型值,可以使用 Object(..) 函数(不带 new 关键字):
1 | var a = "abc"; |
拆封
如果想要得到封装对象中的基本类型值,可以使用 valueOf() 函数:
1 | var a = new String( "abc" ); |
Symbol(..)
符号(Symbol)。符号是具有唯一性的特殊值(并 非绝对),用它来命名对象属性不容易导致重名
符号并非对象,而是一种简单的标量基本类型。
小结
JavaScript 为基本数据类型值提供了封装对象,称为原生函数(如 String、Number、Boolean 等)。它们为基本数据类型值提供了该子类型所特有的方法和属性(如:String#trim() 和 Array#concat(..))。
对于简单标量基本类型值,比如 “abc”,如果要访问它的 length 属性或 String.prototype 方法,JavaScript 引擎会自动对该值进行封装(即用相应类型的封装对象来包装它)来实 现对这些属性和方法的访问。