Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 字符串与字符串()的连接_Javascript - Fatal编程技术网

Javascript 字符串与字符串()的连接

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" 这些行不停地重

不幸的是,我们使用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"
这些行不停地重复,有时是数百行硬编码HTML(带有内联样式和缺少的结束标记)。我好奇的部分是
String()
。我以前从未见过这种用法,而且我已经编写JavaScript很长时间了。我问我的同事这是什么,他说“这提高了字符串连接的性能,在调试过程中,您不会逐行执行,而是直接执行到最后”

现在我通常对这些东西持保留态度,但这让我很好奇。。。所以我测试了一下。至少,Chrome总是步进到下一条语句,而不管是否打开
String()
。所以我知道这一点至少是不真实的

那么A.什么是?它并不是一个真正的构造函数(事实上),当我在控制台中键入
String()
时,我得到了空字符串
“”
。B.他所说的提高绩效的说法是否属实?如果是,原因是什么?

来自:

String
全局对象是字符串或字符序列的构造函数

至于在您的示例中使用它是否会提高性能,可能需要记住两件事:

  • 它是否能提高性能可能取决于浏览器或其他JavaScript运行时环境
  • 它可能没有足够的性能改进来保证使用它

它可能会影响特定的调试器,而不是Chrome中的调试器。记住,这只是一个浏览器。话虽如此,他在串接需要调试器的字符串时遇到了问题,我认为与使用
String()
而不是
相比,代码存在更大的问题。它们包含大量变量,因此在串接时检查变量等等。我知道它可以做得更好,但由于我们没有其他方法,我对此感兴趣,因为它至少对chrome、firefox和IE11来说,性能非常糟糕:这是不必要的,可以删除。谢谢。我从未见过全局字符串对象像这样使用。谷歌搜索
String()
什么也没找到,因为我认为这很常见,我误认为MDN页面与我所看到的不同for@pinkfloydx33是的,这是一个奇怪的用法——通常像这样的东西是可疑的。