gpt4 book ai didi

javascript - 期望 ';' 而不是看到 ',' 。 - JSLint 多变量设置

转载 作者:可可西里 更新时间:2023-11-01 02:11:36 27 4
gpt4 key购买 nike

大约从 2016 年 1 月 14 日起,JSLint 开始提示 varlet 声明每个声明有多个变量,并创建了一个新指令,multivar 忽略了这个新的“问题”。

这是一个非常重要的变化,因为如果您确实在同一个代码块中有两个 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 ';'而是看到了 ','.var c,d;

“正确”的修复显然是这样的:

/*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”的两个 checkin (12)。这两个使 JSLint 中的代码遵循新要求,但不(afaict)添加 multivar JSLint.com 上描述和使用的指令。

谁能告诉我为什么现在鼓励/要求使用多个 var 行,而不是通常的“您应该忽略 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.

更多信息请访问:https://github.com/airbnb/javascript#variables

关于javascript - 期望 ';' 而不是看到 ',' 。 - JSLint 多变量设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34862541/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com