我在几个地方看过这个,最值得注意的是HTML5 Boilerplate的plugins.js
文件,我不确定原因。
使用
之类的东西背后的动机是什么var d = "header,nav,footer".split(",");
而不是
var d = ["header", "nav", "footer"];
答案 0 :(得分:12)
在Moore's Law的无情压力下,找到软件消耗更多CPU周期来完成同样工作的方法非常重要。您的特定情况(使用split
而不是首先写出您的意思)就是“微观优化”的一个例子。
虽然有更有效的方法可以获得低效率(代码生成模板,预处理器和类似工具),但对于程序员来说,掌握大量此类技巧非常重要。
答案 1 :(得分:1)
通常人们更喜欢能够在单个字符串中编写内容,而不必使用引号等编写单独的字符串。
但是 - 如果可能的话 - 用空格而不是逗号来做它通常更好,因为在许多语言中,如果没有指定参数,split()
函数将使用它们作为默认分隔符。
但总而言之 - 这只是开发人员喜欢写的问题。它肯定不会更快,但差别根本不重要(无论如何你不会称之为十亿次,你是吗?)
答案 2 :(得分:1)
这可能是重构不完整的结果:也许字符串最初来自配置文件(或者计划将其拆分为配置文件),或者来自用户输入。在这种情况下,从字符串中拆分是很自然的。
或者甚至可以匹配使用这种输入方式的另一部分的样式。也许是这样的:
function get_sections()
{
if has_config()
{
return get_config("sections").split(",");
}
return "header,nav,footer".split(",");
}
第三种选择可能是使翻译更容易。
并非我在其中任何一种情况下都会使用它,但对某些开发人员来说可能有意义。
答案 3 :(得分:0)
没有优势。实际上,对字符串上的方法的调用可能效率稍差(我没有检查过),但可能没那么多。
这只是个人偏好。此外,人们倾向于使用任何语言的string.split()获得高分。它很性感。
答案 4 :(得分:0)
为什么要写x *(1000/4),如果你能写x * 250?我的意思是为什么给运行时额外的头痛解析,分裂(由于缺少逗号,字符串内部的逗号等错误的可能性等)?在编写代码时,我没有看到任何更奇怪的编码约定。
答案 5 :(得分:0)
更容易输入,因为您的报价较少。不适合比单词列表更复杂的东西。