Javascript 字符串与字符串()的连接
不幸的是,我们使用JavaScript构建HTML字符串并使用Javascript 字符串与字符串()的连接,javascript,Javascript,不幸的是,我们使用JavaScript构建HTML字符串并使用document.write输出数据,从而进行了大量动态网页设计。我偶然发现了我的一位同事编写的如下代码: var myString = String() + "this is my string" + "and I am doing a lot of string concatenation" + "doing this the worst way possible" 这些行不停地重
document.write
输出数据,从而进行了大量动态网页设计。我偶然发现了我的一位同事编写的如下代码:
var myString = String() + "this is my string" +
"and I am doing a lot of string concatenation" +
"doing this the worst way possible"
这些行不停地重复,有时是数百行硬编码HTML(带有内联样式和缺少的结束标记)。我好奇的部分是String()
。我以前从未见过这种用法,而且我已经编写JavaScript很长时间了。我问我的同事这是什么,他说“这提高了字符串连接的性能,在调试过程中,您不会逐行执行,而是直接执行到最后”
现在我通常对这些东西持保留态度,但这让我很好奇。。。所以我测试了一下。至少,Chrome总是步进到下一条语句,而不管是否打开String()
。所以我知道这一点至少是不真实的
那么A.什么是?它并不是一个真正的构造函数(事实上),当我在控制台中键入String()
时,我得到了空字符串“”
。B.他所说的提高绩效的说法是否属实?如果是,原因是什么?来自:
String
全局对象是字符串或字符序列的构造函数
至于在您的示例中使用它是否会提高性能,可能需要记住两件事:
- 它是否能提高性能可能取决于浏览器或其他JavaScript运行时环境
- 它可能没有足够的性能改进来保证使用它
String()
而不是“
相比,代码存在更大的问题。它们包含大量变量,因此在串接时检查变量等等。我知道它可以做得更好,但由于我们没有其他方法,我对此感兴趣,因为它至少对chrome、firefox和IE11来说,性能非常糟糕:这是不必要的,可以删除。谢谢。我从未见过全局字符串对象像这样使用。谷歌搜索String()
什么也没找到,因为我认为这很常见,我误认为MDN页面与我所看到的不同for@pinkfloydx33是的,这是一个奇怪的用法——通常像这样的东西是可疑的。