Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.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 为什么JSLint会告诉我;使用数组文字符号[];_Javascript_Jslint - Fatal编程技术网

Javascript 为什么JSLint会告诉我;使用数组文字符号[];

Javascript 为什么JSLint会告诉我;使用数组文字符号[];,javascript,jslint,Javascript,Jslint,我有以下代码: // ... return Array.apply(null, new Array(length)).map(elementfn); 这句话是在告诉我 使用数组文字符号[] 当我在设计时不知道长度时,怎么可能使用文字符号呢?在javascript中,构造数组时不需要输入长度。它们会自动更改大小。JSLint经过优化,可以使用最佳实践并加快脚本速度。数组文字表示法被认为更快,因为它没有调用数组构造函数的开销。这至少是我对它的看法。似乎不错。我不久前就放弃了JSLi

我有以下代码:

    // ...
    return Array.apply(null, new Array(length)).map(elementfn);
这句话是在告诉我

使用数组文字符号[]


当我在设计时不知道长度时,怎么可能使用文字符号呢?

在javascript中,构造数组时不需要输入长度。它们会自动更改大小。

JSLint经过优化,可以使用最佳实践并加快脚本速度。数组文字表示法被认为更快,因为它没有调用数组构造函数的开销。这至少是我对它的看法。

似乎不错。我不久前就放弃了JSLint。我建议JSHint更具可配置性。虽然JSLint在这一点上显然是错误的,但我不认为它是好的、可读的代码。如果你需要一个循环,为什么不使用循环?@Bakudan:这不是重复的。我知道区别。例如,您可以为构造函数提供一个长度,我正在这样做。@recursive好的,我认为该示例指出了JSlint为什么建议使用“[]”的原因,对不起,我的错误。另外,我不太清楚你为什么需要这个尺寸。这不是Java(或C#),在Java中数组的大小是固定的。在JavaScript中,您可以添加任意数量的元素。我想JSLint只是在寻找“新数组(…)”,并没有尝试检查它是否正确使用或其他什么。在提到的用例中,空数组是不合适的。对于空数组,使用
map()
方法初始化将失败。人们可以完全重写代码,但这不是问题的主题。它们只有在添加元素时才会改变大小。在本例中,我有一个变量,其中包含我希望数组的长度。您可以始终只设置数组。长度=length@recursive:我同意MrP。以下代码没有错误/警告:
函数测试(length,elementfn){“use strict”;var ar=[];ar.length=length;返回Array.apply(null,ar).map(elementfn);}
不可能使用数组文本来表示长度未知的数组。