如何在不破坏"Unexpected assignment expression"功能的情况下修复JSLint错误analytics.js?
有问题的一行:
(w[g].q = w[g].q || []).push(arguments);
完整代码:
<script src=//www.google-analytics.com/analytics.js async></script>
<script>
/*global window: false, ga: false */
(function (w, g) {
'use strict';
w.GoogleAnalyticsObject = g;
w[g] = w[g] || function () {
(w[g].q = w[g].q || []).push(arguments);
};
w[g].l = +new Date();
ga('create', 'UA-XXXX-Y', 'auto');
ga('send', 'pageview');
}(window, 'ga'));
</script>
做了什么:
答案 0 :(得分:3)
你可以把它分成两行:
w[g].q = w[g].q || [];
w[g].q.push(arguments);
这将以完全相同的方式工作,它只是使代码更清晰。第一行检查w[g].q
是否真实(可能在代码首次运行之前它将是undefined
)并且如果是的话将为其分配一个空数组。
这是一种相对常见的技术,它有效地简化了if
语句。如果你想让代码更清晰,你可以使用其中一个:
if (!w[g].q) {
w[g].q = [];
}
w[g].q.push(arguments);