我在TypeScript代码中插入了GA代码段,并看到以下内容:
i[r].l = 1 * new Date();
TypeScript编译器抱怨新的Date()必须为数字或任何数字,但不能为Date。
我把这个变成了:
i[r]['l'] = new Date().getTime();
导致相同的结果。
如果优先考虑减小尺寸,那么我会发现它更紧凑,并且具有相同的结果:
i[r]['l'] = +new Date();
我不知道为什么要使用带有隐式转换的smart-ass变体。
有什么我不了解的隐藏东西吗?还是只是想让男人看起来更聪明?是为了缩短长度?
有什么我不明白的隐藏...
不,绝对是为了缩短长度,绝对是100%。
实际上,如果您查看最新的推荐代码段,它将使用just +new Date
,它比您的+new Date()
版本短两个字节:
<script>
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
ga('create', 'UA-XXXXX-Y', 'auto');
ga('send', 'pageview');
</script>
<script async src='https://www.google-analytics.com/analytics.js'> </script>
的确,很多短子和代码构建工具都会抱怨这些做法,这是有充分理由的。您可能不应该在源代码中使用这样的巧妙技巧,因为它们更难阅读,并且不总是清楚其意图,令人困惑等。
但是,几乎每个缩小器都使用它们来生成最有效的代码,并且从技术上讲,它们绝对没有错。
关键是您应该编写可读的代码,然后依靠缩小器/编译器使其尽可能小和高效。
但是,Google Analytics(分析)不能仅仅假设所有使用其摘要的人都可以通过一个缩小器来运行它,因此它为开发人员提供了预先缩小的摘要。
处理源文件中包含预缩小代码并避免linter / compiler警告的最常见方法是忽略整个块,几乎每个linter都提供此功能。
例如,使用ESLint,您可以通过在要忽略的代码块之前和之后直接添加注释来做到这一点(我在许多人的Google Analytics(分析)代码段中看到了一些源代码):
/*eslint-disable */
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
ga('create', 'UA-XXXXX-Y', 'auto');
ga('send', 'pageview');
/*eslint-enable */
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句