为了清理我的代码,我一直在关注Web Storm中的所有提示。以下duplicate declaration
错误使我感到困惑。
在下面的代码中,是否需要var
双重使用(或建议)来阻止全局变量? (或者我可以删除s中的第二个var
:
function run(x) {
if(x == 5) {
var s = 'Yes',
bar = 1,
baz = 2
} else {
var s = 'No',
bar = 1,
baz = 2
}
console.log(s);
}
此外,如果我删除else
条件中的var,我会收到comma expression
错误,表示我的代码可能过于聪明"。
书写
else {
bar = 1,
baz = 2
}
我觉得语法不好
答案 0 :(得分:3)
为此我会使用:
function run(x) {
var s = (x === 5) ? 'Yes' : 'No';
var bar = 1;
var baz = 2;
console.log(s);
}
您目前收到重复声明错误,因为变量属于同一范围。
答案 1 :(得分:1)
如果坚持使用原始代码,那么最干净的解决方案就是:
function run(x) {
var s, bar, baz;
if(x == 5) {
s = 'Yes';
bar = 1;
baz = 2;
} else {
s = 'No';
bar = 1;
baz = 2;
}
console.log(s);
}