javascript - 谷歌分析验证 : Unexpected '1'

标签 javascript google-analytics

我试图让 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 日以来的毫秒数。但是如果您将相同的一行代码粘贴到您的验证器中,它会抛出相同的错误。

Multiplication with date object - javascript

关于javascript - 谷歌分析验证 : Unexpected '1' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29600659/

相关文章:

javascript - Highcharts 分组类别数据 csv

javascript - 使用 Javascript 将文本添加到输入字段时启动数据表过滤器

r - 如何在多 channel 路径中获取交互类型

android - gms/analytics android studio 2.2rc2 的重复依赖错误

google-analytics - AMP页面上有多个Google跟踪代码

javascript - 多次创建 jQuery 模态

javascript - Uncaught ReferenceError : L is not defined

javascript - Jest - 调用模拟函数不计算在内

google-analytics - 如何使用 Google Analytics 中的事件跟踪添加列表?

google-analytics - 在 Google AMP 分析事件跟踪中传递动态事件标签