From 3e87d49ac863d91bb876560ed8210774cd1adccd Mon Sep 17 00:00:00 2001 From: YuJian Date: Wed, 27 Apr 2022 10:15:58 +0800 Subject: [PATCH] vault backup: 2022-04-27 10:15:58 --- 深入探索 JavaScript/JavaScript 类型.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/深入探索 JavaScript/JavaScript 类型.md b/深入探索 JavaScript/JavaScript 类型.md index 7218c59..0f232df 100644 --- a/深入探索 JavaScript/JavaScript 类型.md +++ b/深入探索 JavaScript/JavaScript 类型.md @@ -29,6 +29,7 @@ - JavaScript 语言在设计上视图模糊对象和基本类型之间的关系,代码中可以把对象的方法放在基本类型上使用比如 `"Hello".charAt(0)` - 这是因为 JavaScript 运算符提供了装箱操作,它会根据基础类型构造一个临时对象,使得我们能在基础类型上调用对象类型的方法 - JavaScript高级程序设计中的解释: 为了方便操作原始值,ES提供了3种特殊的引用类型:Boolean、Number和String。这些类型具有其他引用类型一样的特点,但也具有与各自原始类型对应的特殊行为。每当用到某个原始值的方法和属性时,后台都会创建一个相应的原始包装类型的对象,从而暴露出操作原始值的各种方法。 +- 围绕原始数据类型创建一个显式包装器对象从 ECMAScript 6 开始不再被支持。 然而,现有的原始包装器对象,如 new Boolean、new String以及new Number,因为遗留原因仍可被创建 ## 类型转换 @@ -47,4 +48,6 @@ var symbolObject = (function(){ return this; }).call(Symbol("a")); console.log(typeof symbolObject); //object object console.log(symbolObject instanceof Symbol); //true console.log(symbolObject.constructor == Symbol); //true -``` \ No newline at end of file +``` + +- 装箱机制会频繁产生临时对象,在一些对性能要求较高的场景下,我们应该尽量避免对基本类型做装箱转换 \ No newline at end of file