【发布时间】:2016-02-25 13:26:00
【问题描述】:
我突然在 javascript 文件中遇到语法错误 Eclipse 火星 IDE 错误 : 标记“in”的语法错误,需要标识符
代码:
function getData (node) {
var attrs = node.attributes || []
, data = {};
if (!attrs.length) return data;
$.each(attrs, function (i, attr) {
if (/^data-in-*/.test(attr.nodeName)) {
data.in = data.in || {};
data.in[attr.nodeName.replace(/data-in-/, '')] = attr.nodeValue;
} else if (/^data-out-*/.test(attr.nodeName)) {
data.out = data.out || {};
data.out[attr.nodeName.replace(/data-out-/, '')] = attr.nodeValue;
} else if (/^data-*/.test(attr.nodeName)) {
data[attr.nodeName] = attr.nodeValue;
}
})
return data;
}
【问题讨论】:
-
in 是 javascript 中的关键字,不能用作属性,所以
data.in = data.in || {};无效 -
我不认为这是一个实际的错误,代码是有效的。 IDE 中的 linter 似乎过于敏感。你在浏览器中运行的时候也会报错吗?
-
@nathan.meadows 自从 ES5 以来,MDN: Reserved word usage 不再是这种情况。一些较旧的浏览器或编辑器会抱怨它是语法错误。
-
标签: javascript jquery