为什么在这种情况下,eslint 4.17.0我的错误号永远不会被重新分配。请改用“const”。 (喜欢const的)。为什么我需要使用const?请解释我,我无法理解。
let test = {
'number': 1,
'string': 'asd',
};
test.number = 99;
console.log(test.number);
// output: 99
的ECMAScript
{
"parser": "babel-eslint",
"env": {
"browser": true
},
"extends": [
"google"
],
"rules": {
"prefer-const": 2
},
"parserOptions": {
"ecmaVersion": 6,
"sourceType": "module"
}
}
问题
[eslint] 'test' is never reassigned. Use 'const' insted. (prefer-const)
答案 0 :(得分:0)
ES6 const并不表示值是“常量”或不可变的。一个 const值肯定会改变。以下内容完全有效 不会抛出异常的ES6代码。
const foo = {};
foo.bar = 42;
console.log(foo.bar);
// → 42
如果您知道要更改属性,请尝试使用let。
答案 1 :(得分:0)
来自ESlint Docs:
如果永远不修改变量,则使用const声明会更好。 Const 声明告诉读者,“这个变量永远不会 修改,“减少认知负担和提高可维护性。
/*eslint prefer-const: 2*/
/*eslint-env es6*/
let a = 3; /*error 'a' is never modified, use 'const' instead.*/
console.log(a);
// `i` is re-defined (not modified) on each loop step.
for (let i in [1,2,3]) { /*error 'i' is never modified, use 'const' instead.*/
console.log(i);
}
// `a` is re-defined (not modified) on each loop step.
for (let a of [1,2,3]) { /*error 'a' is never modified, use 'const' instead.*/
console.log(a);
}