【问题标题】:Concatination vs joining with empty string连接与空字符串连接
【发布时间】:2015-01-13 03:52:54
【问题描述】:

在 JavaScript 中,当将“许多”字符串连接在一起时,使用串联运算符 (+)、将框作为数组然后连接或完全做其他事情是否更习惯?

例如:

var a = '1', b = '3', c = '3', d = '7';

a + b + c + d          // => "1337"
// VS 
[a, b, c, d].join('')  // => "1337
// VS
// ... something else?

【问题讨论】:

    标签: javascript string concatenation idioms


    【解决方案1】:

    在第一种情况下,当你做为字符串时,这里的数据类型只是字符串。字符串之间的操作更容易,在这种情况下保持相同的数据类型:

    a + b + c + d
    

    但是,当您通过将字符串转换为数组然后使用join() 函数来连接字符串时,这是一项乏味的任务。您正在分配一个新的内存空间来创建这些字符串的数组,然后对它们应用join() 函数,这肯定会比使用本机运算符的本机字符串函数的性能下降。

    [a, b, c, d].join('')
    

    我并不是说数组函数不是原生的,而是您将它们从一种形式转换为另一种形式,然后对其应用其他操作,这使得它更加复杂。

    我还想添加plalx 的评论,在某些浏览器中,join() 函数明显更快。所以这也取决于浏览器。

    【讨论】:

    • “采用直截了当的方法总是更好”,这种说法根本不正确。在某些浏览器中,join 方法的速度明显更快。
    • @plalx 我已经删除了。
    • @plalx 谢谢,根据您的评论添加了 addl 信息。 :)
    猜你喜欢
    • 2011-12-06
    • 2010-09-29
    • 2011-11-09
    • 1970-01-01
    • 2021-01-26
    • 2015-09-13
    • 1970-01-01
    相关资源
    最近更新 更多