Javascript 使用字符串拆分而不是带有子字符串的数组声明数组

Javascript 使用字符串拆分而不是带有子字符串的数组声明数组,javascript,arrays,string,split,Javascript,Arrays,String,Split,我经常注意到,当人们拆分一系列子字符串,而不是仅仅声明一系列必要的字符串时 例如: 举例 选择这种方式的原因是什么?,但它的优点是代码可以更短(更少的字符): 在本例中,差异不是很大,但如果有100个变量,差异会变得更显著 分隔符在拆分版本中添加的长度是11+1*n,其中n是元素数,11是拆分(“|”) 对于阵列版本,这是2+3*(n-1),而2用于[] 这意味着只要有6个元素,.split版本就会更短: for(var i = 5; i < 8; i++){ console.lo

我经常注意到,当人们拆分一系列子字符串,而不是仅仅声明一系列必要的字符串时

例如:

举例

选择这种方式的原因是什么?

,但它的优点是代码可以更短(更少的字符):

在本例中,差异不是很大,但如果有100个变量,差异会变得更显著

分隔符在拆分版本中添加的长度是
11+1*n
,其中
n
是元素数,11是
拆分(“|”)

对于阵列版本,这是
2+3*(n-1)
,而
2
用于
[]

这意味着只要有6个元素,
.split
版本就会更短:

for(var i = 5; i < 8; i++){
    console.log('Elements:', i, 'split:', 11 + (i-1), 'array:', 2 + 3 * (i-1));
}
// Elements: 5 split: 15 array: 14
// Elements: 6 split: 16 array: 17
// Elements: 7 split: 17 array: 20
for(变量i=5;i<8;i++){
log('Elements:',i,'split:',11+(i-1),'array:',2+3*(i-1));
}
//元素:5分割:15阵列:14
//元素:6拆分:16数组:17
//元素:7拆分:17阵列:20

我这样做是为了避免必须匹配数组declaration中的所有引号。这不属于堆栈溢出。一个简短的答案是:缩小。这些库被压缩成具有最小空白和短变量名的小型版本。事实证明,拆分比写数组文字要短(以字符为单位)。@MattiasBuelens努力想知道它为什么不在主题中。这肯定属于Soit,但令人惊讶的是,平均而言,在计算上浪费时间比下载源代码要好。“我的想法正好相反。”Dreen,这样想吧:考虑到,对于更流行的库,每个字节都很重要。(因此,这更多的是服务器端优化,而不是客户端)@Dreen参加聚会有点晚,但根据链接的jsperf,在我的计算机上,较慢的方法只慢0.000005毫秒。不仅“浪费”可以忽略不计,而且即使是最快的互联网连接也无法在这段时间内下载一个字节的数据,因此总体而言,它还是更快的。
 "Boolean Number String Function Array Date RegExp Object".split(" ")
var array = 'months|monthsShort|weekdays|weekdaysShort|weekdaysMin|longDateFormat|calendar|relativeTime|ordinal|meridiem'.split('|');
var array = ['months','monthsShort','weekdays','weekdaysShort','weekdaysMin','longDateFormat','calendar','relativeTime','ordinal','meridiem'];
for(var i = 5; i < 8; i++){
    console.log('Elements:', i, 'split:', 11 + (i-1), 'array:', 2 + 3 * (i-1));
}
// Elements: 5 split: 15 array: 14
// Elements: 6 split: 16 array: 17
// Elements: 7 split: 17 array: 20