12
字符串基元和JavaScript中的String对象有什么区别?
取自MDN 字符串文字(用双引号或单引号引起来)和非构造函数上下文中从字符串调用返回的字符串(即,不使用new关键字)是原始字符串。JavaScript自动将基元转换为String对象,以便可以将String对象方法用于基元字符串。在要在原始字符串上调用方法或发生属性查找的情况下,JavaScript将自动包装字符串原始并调用该方法或执行属性查找。 因此,我认为对字符串基元进行(逻辑上)的操作(方法调用)应比对字符串对象进行的操作慢,因为在将字符串基元应用于字符串之前,任何字符串基元都将转换为字符串对象(额外工作)method。 但是在这个测试案例中,结果是相反的。所述码块1的运行速度比较快码块-2 ,两者的码块在下面给出: 代码块1: var s = '0123456789'; for (var i = 0; i < s.length; i++) { s.charAt(i); } 代码块2: var s = new String('0123456789'); for (var i = 0; i < s.length; i++) { s.charAt(i); } 结果在浏览器中会有所不同,但是代码块1总是更快。谁能解释一下,为什么代码块1比代码块2快。
116
javascript
string
object