|
|
1
39
声明数组大小有许多可感知的好处,但我认为大多数可感知的好处只是被传递。 性能更好!速度快! 就我所知,预分配和动态分配的区别是可以忽略的。 更有趣的是,规范 不 声明数组应设置为预先分配的长度! 来自第15.4.2.2节 ECMA-262 :
这里有一个不科学的趣味测试案例: http://jsbin.com/izini 它使代码更易于理解! 就个人而言,我不同意。 考虑一下您过去编写的javascript,以及将来可能必须编写的代码。我想不出一个时间需要在其中一个数组上指定静态限制。我还认为限制javascript中数组的潜在问题远远超过了让人们知道您在想什么而不进行实际检查所带来的好处。让我们权衡一下利弊… 赞成的意见:
欺骗:
你也可以写:
在上面的例子中,注释甚至可能更可取。明确的意向声明可以避免任何不用于将构造函数用作意向声明的混淆。 那么好吧…为什么你认为它就在那里? 方便。当他们写规范的时候,我想他们意识到了两件事。
所以他们把它放进去了。 规范只定义参数的使用,而不定义如何实现它。 |
|
|
2
23
V8 JavaScript引擎的性能。 通过做:
V8将预先分配阵列所需的内存,并维护/设置阵列的
在Chrome上尝试以下链接: http://jsperf.com/0-fill-n-size-array 我已经包含了一个没有数组长度定义的额外测试用例,这样您就可以知道实际的性能差异。 |
|
|
3
6
我不确定,但我敢打赌它在较低的级别上分配内存是不同的。如果您知道要创建10000个项目,只需保留足够的空间,而不是动态地让它在后台随时调整大小。 |
|
|
4
5
清晰。 在编写代码时,您的目标是 不 这对于计算机来说是如此的理解你,但是对于下一个阅读你的代码来理解你的程序员来说。
上面的代码显示 你的意图 :有一个10元素数组。
上面没有透露任何信息;没有额外的信息。 干杯。 |
|
|
5
2
我创造了 this JSPerf 它演示了这个问题,包括它的各种版本。我发现的论点如下:
我认为这些测试应该停止这些论点,但应该注意的是,不同的浏览器对这个问题的处理方式非常不同。Firefox似乎在优化和计算阵列的大小 将 是的,而chrome会按预期分配内存。而且,和往常一样,Internet Explorer在这项任务上也很差劲。 |
|
|
6
1
假设需要将某个长度的数组初始化为某个值。这不起作用:
它只会给您一个空数组,因为fill()永远不会将数组扩展到其原始长度之外。 这将起作用:
它将为您提供一个studentCount值数组,这些值初始化为零。 |
|
|
7
0
保持数组大小并不困难。请看下面的示例:
|
|
|
8
-1
嗯,就我个人而言,我想排队。我希望队列长度为10。
最简单的方法是使用
问题是,如果我想为我的队列创建一个简单的“添加”方法,我会这样写:
那就没什么好事了。更好的方法(实际上,有效的方法)是这样声明我的数组:
然后到处使用。另外,请注意描述数组的“好”方法——没有任何人读取的注释,任何使用此代码的人都将按短顺序计算出该数组的最大大小。 哎呀! |
|
|
code-geek · Jquery根据单选按钮选择隐藏或显示文本字段 1 年前 |
|
|
Alex · 在轻量级中同时解构和不解构变量 1 年前 |
|
|
Ângelo Rigo · ReactJS映射:如何迭代[关闭] 1 年前 |
|
|
bairog · 从按属性筛选的对象数组字典中创建值数组 1 年前 |
|
|
lokiuucx · JS对象属性返回未定义,尽管对象属性应该有值 1 年前 |