我试图让 Google Analytics 通过 http://codebeautify.org/jsvalidate 进行验证我只收到 1 个错误:意外的“1”。它发生在这一行:
i[r].l = 1 * new Date();
1 * 不是多余的吗?为什么GA有那个?删除那部分代码是否安全?以防万一,这是我的完整代码:
/*global document, ga, window */
(function (i, s, o, g, r, a, m) {
'use strict';
i.GoogleAnalyticsObject = r;
i[r] = i[r] || function () {
i[r].q = i[r].q || [];
i[r].q.push(arguments);
};
i[r].l = 1 * new Date();
a = s.createElement(o);
m = s.getElementsByTagName(o)[0];
a.async = 1;
a.src = g;
m.parentNode.insertBefore(a, m);
}
(window, document, 'script', '//google-analytics.com/analytics.js', 'ga'));
ga('create', 'UA-XXXXXXXX-X', 'auto');
ga('require', 'displayfeatures');
ga('send', 'pageview');
最佳答案
正如在下面的问题“乘法(或任何算术运算)导致 Date 对象被转换为数字以便计算表达式”中所解释的那样
尽管将新的 Date 对象乘以一个整数似乎很奇怪,但我认为这是 javascript 的怪癖。执行“1 * new Date()”等同于使用 .getTime()。
代码很好,你得到错误的原因是解析器来自 http://codebeautify.org/jsvalidate不支持这种怪癖。
您现在可以打开控制台并输入 console.log(1 * new Date()); 轻松测试它您将获得自 1970 年 1 月 1 日以来的毫秒数。但是如果您将相同的一行代码粘贴到您的验证器中,它会抛出相同的错误。
关于javascript - 谷歌分析验证 : Unexpected '1' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29600659/