【问题标题】:JavaScript in operational throw a exception? [duplicate]JavaScript 在运行中抛出异常? [复制]
【发布时间】:2015-12-01 21:33:04
【问题描述】:

这样的代码

<script type="text/javascript">
  var name = [2,3,4];
  var a = (1 in name);
  console.log(a);
</script>

但抛出错误

如果是这样的代码:

<script type="text/javascript">
  var names = [2,3,4];
  var a = (1 in names);
  console.log(a);
</script>

没有错误!为什么?在火狐上测试!

【问题讨论】:

  • name ... 实际上是window.name,它始终是一个字符串,不能从字符串更改
  • @JaromandaX:这是一个答案。 :-) 这个问题我们已经问了几十次了,但是真的很难找到原件用作近距离目标...
  • @T.J.Crowder - 我确定我是在 SO 上了解到的 - 寻找骗子:D
  • 这正是问题所说的......name 失败,names 有效
  • @T.J.Crowder:我刚用过一个。如果您找到更好的(较早的?)重复目标,请告诉我:-)

标签: javascript


【解决方案1】:

由于变量name 可能存在范围问题,请务必使用以下内容创建范围:

(function() {
  var name = [2,3,4];
  var a = (1 in name);
  console.log(a);
})();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-15
    • 2012-08-21
    • 2015-06-03
    • 2019-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多