javascript - 对于每个...in 循环未运行 : syntax error missing (

标签 javascript firefox for-loop

这个 for each...in 循环没有运行,尽管它是 mozilla 的直接副本 Javascript guide关于 for each...in 语句。

var sum = 0;
var obj = {prop1: 5, prop2: 13, prop3: 8};
for each (var item in obj) {
  sum += item;

}

alert(sum); // prints "26", which is 5+13+8

jsFiddle:http://jsfiddle.net/4fVSB/1/

我收到这个错误:

SyntaxError: missing ( after for for each (var item in obj) {

这可能与我的 javascript 版本有关。出于某种原因,我的 FF 有 javascript 1.5 版,而我确实安装了 FF 24.0。这个版本的 FF 不应该有最新的 javascript 版本吗?

Fiddle 看看我有什么版本的 js:http://jsfiddle.net/Ac6CT/

谢谢,

最佳答案

正确的语法只是for(var item in obj),没有each。 然后在实际循环中,您必须使用 obj[item] 访问数值(即 5、13 等)。

你的代码最后应该是这样的:

var sum = 0;
var obj = {prop1: 5, prop2: 13, prop3: 8};
for(var item in obj) {
  if(obj.hasOwnProperty(item)){
    sum += obj[item];
  }
}

alert(sum);

hasOwnProperty 函数可确保您不会意外地循环继承的方法。

关于javascript - 对于每个...in 循环未运行 : syntax error missing (,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18919989/

相关文章:

javascript - jQuery 管理表格数据

javascript - 从弹出脚本到内容脚本的 WebExtension 消息

javascript - 为什么可以提交这个表单? (火狐)

javascript - 从组件的 OnInit 调用时,Angular 2 路由器无法导航

javascript - 什么是 IE6 同源策略

matlab - matlab for 循环中的多个条件

javascript - 动态点击事件问题

JavaScript For Loop double 值 365 次

javascript - 如何构建用于计数的递归流

javascript - 如何在 Firefox WebExtension 中查看后台脚本的 console.log 输出?