javascript - VS2008中变量声明警告

标签 javascript

VS2008 中的以下代码给我一个“变量已定义”警告:

if (someVar) {
  var a = 1;
}
else {
  var a = 2;
}

警告在第二个 var a = ... 上给出。为了解决这个警告,我已经做了:

var a;
if (someVar) {
  a = 1;
}
else {
  a = 2;
}

但是这是正确的方法吗?

谢谢

阿杰

最佳答案

是的,这是正确的做法。 JavaScript 中没有 block 作用域;只有函数作用域和全局作用域。

您还可以使用匿名函数为每个“ block ”提供功能范围,尽管在这种情况下不太实用:

if (someVar) {
  (function () {
     var a = 1;
   })();
}
else {
  (function () {
     var a = 2;
   })();
}

顺便说一句,这也是为什么不鼓励使用 for (var i = 0; ...) 而使用 var i; 的原因。 for (i = 0; ...),以避免同一函数中的 2 个连续循环都尝试声明变量 i

关于javascript - VS2008中变量声明警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2407760/

相关文章:

javascript - 使用 webpack 导出全局函数

javascript - jQuery:表选择器的每个函数迭代

javascript - 错误: cannot find module electron while testing by mocha and spectron in electron-compile app

javascript - jQuery 更改 <img> 标签的来源

javascript - position:fixed 用于 float 的 div

JavaScript 运行时错误 : '[MethodName]' is undefined

javascript - Google map 商店定位器 API - TypeError : this. b 未定义

javascript - 如何将 javascript regexp 中的 Euro € 符号与八进制、十六进制或 unicode 元字符匹配?

javascript - 如何将 JavaScript 添加到 PDF 表单?

javascript - React Redux 不变性备忘单