当页面被称为localhost和non-localhost时,尾随逗号的Javascript对象和不同的行为。为什么?
我使用javascript对象(test.html)创建了简单的html页面: (第4行,字符40位于尾随逗号之后;“myObj未定义”是先前错误的结果) Chrome适用于这两种情况 为什么会有如此不同的行为? 在使用第三方js库的情况下,如何处理此类错误? 还是我做错了什么当页面被称为localhost和non-localhost时,尾随逗号的Javascript对象和不同的行为。为什么?,javascript,angularjs,object,browser,Javascript,Angularjs,Object,Browser,我使用javascript对象(test.html)创建了简单的html页面: (第4行,字符40位于尾随逗号之后;“myObj未定义”是先前错误的结果) Chrome适用于这两种情况 为什么会有如此不同的行为? 在使用第三方js库的情况下,如何处理此类错误? 还是我做错了什么 (由于上述问题,我尝试使用angular gantt库失败。)您确定在Firefox中看到了这一点吗?我在IE中理解它,但在其他任何方面都不理解。IE的问题是因为IE对内部网的默认设置是“无脑死亡”,即使用“兼容模式”(
(由于上述问题,我尝试使用angular gantt库失败。)您确定在Firefox中看到了这一点吗?我在IE中理解它,但在其他任何方面都不理解。IE的问题是因为IE对内部网的默认设置是“无脑死亡”,即使用“兼容模式”(与IE以前的坏版本兼容,而不是标准)。IE的解决方案是使用
使其不这样做。但这并不能解释Firefox.IE不喜欢尾随逗号。它期待着另一处房产。Chrome只是忽略了它们。在库中识别出有此错误的对象,并用另一个忽略最后一个逗号的对象变量重写此对象变量。@Qurimo:IE8及以上版本支持对象初始值设定项上的悬空逗号,并且是ES5规范(2009年12月)的一部分。
<html>
<head>
<script type="text/javascript">
myObj = { name: "object name", };
</script>
</head>
<body>
<p>simple text</p>
<script type="text/javascript">
alert(myObj.name);
</script>
</body>
</html>
SCRIPT1028: Expected identifier, string or number
test.html, line 4 character 40
SCRIPT5009: 'myObj' is undefined
test.html, line 9 character 12