# init-declarations
在变量声明中要求或不允许初始化
在 JavaScript 中,变量可以在声明期间赋值,或者在之后的任何时候使用赋值语句。例如,在下面的代码中,foo
在声明时被初始化,而 bar
在后面被初始化。
var foo = 1;
var bar;
if (foo) {
bar = 1;
} else {
bar = 2;
}
# 规则详情
此规则旨在在声明期间强制或消除变量初始化。例如,在下面的代码中,foo
在声明时被初始化,而 bar
没有。
var foo = 1;
var bar;
bar = 2;
该规则旨在为变量初始化和声明带来一致性。
# 选项
该规则有两个选项:
您可以按如下方式配置规则:
变量必须在声明时初始化(默认)
{
"init-declarations": ["error", "always"],
}
变量不能在声明时初始化
{
"init-declarations": ["error", "never"]
}
变量不得在声明时初始化,除非在允许的 for 循环中
{
"init-declarations": ["error", "never", { "ignoreForLoopInit": true }]
}
# always
默认 "always"
选项的错误代码示例:
/*eslint init-declarations: ["error", "always"]*/
/*eslint-env es6*/
function foo() {
var bar;
let baz;
}
默认 "always"
选项的正确代码示例:
/*eslint init-declarations: ["error", "always"]*/
/*eslint-env es6*/
function foo() {
var bar = 1;
let baz = 2;
const qux = 3;
}
# never
"never"
选项的错误代码示例:
/*eslint init-declarations: ["error", "never"]*/
/*eslint-env es6*/
function foo() {
var bar = 1;
let baz = 2;
for (var i = 0; i < 1; i++) {}
}
"never"
选项的正确代码示例:
/*eslint init-declarations: ["error", "never"]*/
/*eslint-env es6*/
function foo() {
var bar;
let baz;
const buzz = 1;
}
"never"
选项忽略 const
变量初始化。
# ignoreForLoopInit
"never", { "ignoreForLoopInit": true }
选项的正确代码示例:
/*eslint init-declarations: ["error", "never", { "ignoreForLoopInit": true }]*/
for (var i = 0; i < 1; i++) {}
# 何时不使用
当您对变量的初始化方式漠不关心时。