【问题标题】:Unexpected dangling '_' in '_gaq' [duplicate]'_gaq'中意外悬空'_'[重复]
【发布时间】:2011-07-06 13:53:00
【问题描述】:

我正在尝试使用 JSLint 验证我的 Google Analytics(分析)代码,但收到很多错误消息:

代码:

/*global document */
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-24389816-1']);
_gaq.push(['_trackPageview']);

(function () {
    var s,
        ga = document.createElement('script');
    ga.type = 'text/javascript';
    ga.async = true;
    ga.src = ('https:' === document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(ga, s);
}());

错误信息:

第 2 行字符 5 处的问题: 在“_gaq”中意外悬空“_”。

var _gaq = _gaq || [];

第 2 行字符 12 处的问题: 在“_gaq”中意外悬空“_”。

var _gaq = _gaq || [];

第 3 行字符 1 的问题: 在“_gaq”中意外悬空“_”。

_gaq.push(['_setAccount', 'UA-24389816-1']);

第 4 行字符 1 处的问题: 在“_gaq”中意外悬空“_”。

_gaq.push(['_trackPageview']);

怎么了? 谢谢。

【问题讨论】:

标签: javascript browser google-analytics jslint


【解决方案1】:

jslint 默认设置不允许在变量名的开头使用下划线。这是因为在其他语言中,它意味着一个私有变量,这是 JavaScript 不支持的。

要删除警告,您可以将nomen: true 添加到 jslint 的选项中。否则,您将不得不忍受这些警告。

据我所知,Google 目前不提供重命名此变量的方法。

【讨论】:

  • 我已经检查了“允许在标识符中悬挂 _”选项。
  • Javascript 确实通过使用闭包来支持私有变量。
  • @magritte 我认为 pete 暗示 JavaScript 不支持创建带有 _ 下划线的私有变量。
【解决方案2】:

对于 JSLint 或 JSHint,设置 nomen: false 以忽略此警告。

【讨论】:

  • 它是 /*jslint nomen: true*/
  • False 为我工作。真的没有
  • 对我来说也将 nomen 更改为虚假作品
猜你喜欢
  • 2011-03-07
  • 2012-09-20
  • 2011-02-02
  • 2020-01-21
  • 2017-10-22
  • 2017-05-22
  • 2015-04-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多