你不知道的JS系列 ( 28 ) - 内置对象

JavaScript 还有一些对象子类型,通常被称为内置对象
String
Number
Boolean
这三个内置对象的名字看起来和简单基础类型一样,实际上它们的关系更复杂
Object
Function
Array
Data
RegExp
Error
这些内置函数可以当作构造函数来使用,从而构造一个对应子类型的新对象
var strPrimitive = 'I am a string';
typeof strPrimitive; // string
strPrimitive instanceof String; // false

var strObject = new String('I am a string');
typeof strObject; // Object
strObject instanceof String; // true

// 检查 sub-type 对象
Object.prototype.toString.call(strObject); // [object String]

从代码中可以看到,strObject 是由 String 构造函数创建的一个对象。

原始值 'I am a string' 并不是一个对象,它只是一个字面量,并且是一个不可变的值,如果要在这个字面量上执行一些操作,比如获取长度,访问其中某个字符等,需要将其转换成 String 对象。
var strPrimitive = 'I am a string';
console.log(strPrimitive.length); // 13
console.log(strPrimitive.charAt(3)); // 'm'

可以直接在字面量上访问属性和方法,是因为引擎自动把字面量转换成 String 对象。数字字面量,布尔字面量也是如此

猜你喜欢

转载自www.cnblogs.com/wzndkj/p/12501624.html
今日推荐