JS何时为字符串创建对象包装?

时间:2018-11-13 07:09:27

标签: javascript javascript-objects

'retularString'中的Symbol.iterator //错误in的右边是对象

Symbol.iterator in new String()//是

这是否意味着JS在调用方法/或访问它们上的相应属性(如'string'.toUppercase() / 'string'.length时)仅创建字符串的对象包装?

1 个答案:

答案 0 :(得分:3)

  

这是否意味着JS在调用方法/或访问它们上的相应属性(如'string'.toUppercase() / 'string'.length时)仅创建字符串的对象包装?

是的

当您有一个声明为var foo = 'foo'的字符串时,其类型为基元string,其固有地没有属性,但是当您尝试访问其上的属性时,该基元会暂时包装在{ {1}}通过称为隐式强制的过程来反对。

有关JavaScript中强制性的完整说明,请参见this article