我知道JSLint只是一个指南,你应该把它所说的用一些盐,但是,我很好奇我怎么能解决这个警告而不重写整个功能.这是感兴趣的功能:
function randomString(length) {
var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz'.split(''),
str = '',
i;
if (!length) {
length = randomNumber(chars.length);
}
for (i = 0; i < length; i++) {
str += chars[randomNumber(chars.length)];
}
return str;
}
Run Code Online (Sandbox Code Playgroud)
JS Lint告诉我"JS Lint:使用数组文字符号[]." 它指向的是string.split().如何在不重写整个函数的情况下满足JSLint?它甚至可能吗?
我知道还有其他方法可以生成随机字符串; 我对如何使用此方法解决JSLint警告感兴趣.
您可以以字符串为范围调用 String 原型 split 函数来避免警告:
var chars = String.prototype.split.call('ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz', ''),
Run Code Online (Sandbox Code Playgroud)
不知道为什么 JSLint 会抱怨 split 是一个 String 方法。
请参阅:https ://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/split
这似乎也毫无怨言地通过了:
var alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz',
chars = alphabet.split("");
Run Code Online (Sandbox Code Playgroud)