新的Google Analytics代码段使用以下代码:
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(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','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-XXXX-Y', 'auto');
ga('send', 'pageview');
</script>
这会在JSHint中触发两个错误和一个警告:
line 2. ['GoogleAnalyticsObject'] is better written in dot notation.
line 3 Missing semicolon.
line 4 Missing semicolon.
我理解为什么谷歌决定省略分号,他们都是在他们的块中最后一个语句,它节省了2个字节。但有人可以解释他们为什么决定写这个:
i['GoogleAnalyticsObject']=r
而不是:
i.GoogleAnalyticsObject=r
后者实际上缩短了3个字节,根据“JavaScript property access: dot notation vs. brackets?”也应该稍快一些。
答案 0 :(得分:2)
它们可能在点符号上使用字符串表示法,因为在缩小期间不会更改字符串。
答案 1 :(得分:0)
如果没有他们的实际工程师出现并回答,我们就会猜测。这是我最好的猜测:
点和括号表示法之间的性能差异可以忽略不计(http://jsperf.com/dot-notation-vs-bracket-notation/2),所以我怀疑这甚至是决定的因素。国际海事组织最可能的原因是改变是:
我认为后者最有可能,因为它是使用括号而不是点的主要原因之一,但这只是我的看法。