预期的 ';'而是看到了“,”。 - JSLint 多变量设置
Expected ';' and instead saw ','. - JSLint multivar setting
大约从 2016 年 1 月 14 日起,JSLint 开始抱怨 var
或 let
声明每个声明有多个变量,并创建了一个新指令,multivar
忽略了这个新的 "problem".
这是一个非常重要的变化,因为如果您 在同一个代码块中有两个 var
,早期版本会抱怨。
也就是说,截至今天(2016 年 1 月 18 日),此代码现在中断 JSLint:
/*jslint white:true, browser:true, devel:true */
function a(b) {
"use strict";
var c, d; // <<< Now bad!!
d = "test";
c = d + b;
console.log(c);
}
报告的错误是,Expected ';' and instead saw ','.
行 var c,d;
"correct" 修复显然是这样的:
/*jslint white:true, browser:true, devel:true */
function a(b) {
"use strict";
var c;
var d; // <<< this *used* to be forbidden.
d = "test";
c = d + b;
console.log(c);
}
请注意,这个新的正确代码会在 earlier versions of JSLint 中产生错误 Error: combine_var
。
我能找到的关于 Crockford 变化的唯一描述似乎是 this post on Google Plus:
JSLint now has a multivar
option that tolerates multiple names being declared in a single var, let, or const statement.
...并在 website instructions...
上快速提及
Tolerate multiple variables declarations per statement
multivar
true
if a var
, let
, or const
statement can declare two or more variables in a single statement.
JSLint.com 上的 multivar
更改似乎还没有出现在 GitHub 存储库中。查看 1 月 14 日标题为 "var" 的两个签入 (1, 2)。这两个使 JSLint 中的代码遵循新要求,但不 (afaict) 添加描述的 multivar
指令和在 JSLint.com.
上使用
谁能告诉我为什么现在有多个 var
行 encouraged/required,而不是通常的 "You should ignore JSLint," 答案?也就是说,为什么之前需要一个变量(我想是为了鼓励对提升的理解),为什么这个推理突然变得毫无意义?
来自爱彼迎风格指南。
It's easier to add new variable declarations this way, and you never have to worry about swapping out a ; for a , or introducing punctuation-only diffs. You can also step through each declaration with the debugger, instead of jumping through all of them at once.
大约从 2016 年 1 月 14 日起,JSLint 开始抱怨 var
或 let
声明每个声明有多个变量,并创建了一个新指令,multivar
忽略了这个新的 "problem".
这是一个非常重要的变化,因为如果您 在同一个代码块中有两个 var
,早期版本会抱怨。
也就是说,截至今天(2016 年 1 月 18 日),此代码现在中断 JSLint:
/*jslint white:true, browser:true, devel:true */
function a(b) {
"use strict";
var c, d; // <<< Now bad!!
d = "test";
c = d + b;
console.log(c);
}
报告的错误是,Expected ';' and instead saw ','.
行 var c,d;
"correct" 修复显然是这样的:
/*jslint white:true, browser:true, devel:true */
function a(b) {
"use strict";
var c;
var d; // <<< this *used* to be forbidden.
d = "test";
c = d + b;
console.log(c);
}
请注意,这个新的正确代码会在 earlier versions of JSLint 中产生错误 Error: combine_var
。
我能找到的关于 Crockford 变化的唯一描述似乎是 this post on Google Plus:
JSLint now has a
multivar
option that tolerates multiple names being declared in a single var, let, or const statement.
...并在 website instructions...
上快速提及Tolerate multiple variables declarations per statement
multivar
true
if avar
,let
, orconst
statement can declare two or more variables in a single statement.
JSLint.com 上的 multivar
更改似乎还没有出现在 GitHub 存储库中。查看 1 月 14 日标题为 "var" 的两个签入 (1, 2)。这两个使 JSLint 中的代码遵循新要求,但不 (afaict) 添加描述的 multivar
指令和在 JSLint.com.
谁能告诉我为什么现在有多个 var
行 encouraged/required,而不是通常的 "You should ignore JSLint," 答案?也就是说,为什么之前需要一个变量(我想是为了鼓励对提升的理解),为什么这个推理突然变得毫无意义?
来自爱彼迎风格指南。
It's easier to add new variable declarations this way, and you never have to worry about swapping out a ; for a , or introducing punctuation-only diffs. You can also step through each declaration with the debugger, instead of jumping through all of them at once.