首页前端开发正文

对百度统计代码的一点小思考

朱绪2022-06-09657JavaScript

相信大部分网站站长都使用过「百度统计」这个工具。

百度统计

我们给自己的网站申请百度统计之后,它会给我们一段代码,让我们将这段代码复制到自己网站公共文件中。

百度统计代码长这样:

<script>
var _hmt = _hmt || [];
(function() {
  var hm = document.createElement("script");
  hm.src = "此处是一个链接,每个人的链接是不一样的";
  var s = document.getElementsByTagName("script")[0]; 
  s.parentNode.insertBefore(hm, s);
})();
</script>

第一行代码为什么要这样写呢?

var _hmt = _hmt || [];

这行代码的意思是,声明一个全局变量 _hmt,并将其初始化为 _hmt 或 一个空数组。

这里请注意,|| 是 JS 中的「逻辑或」运算符,它的作用是,倘若 _hmt 已经被定义了,那么 _hmt 的值就是 _hmt 自身,否则就将 _hmt 的值设为一个空数组。

这种写法的好处在于,一来可以防止变量被重复定义,二来可以避免因「变量未定义」而导致的错误。

我是想定义 _hmt 的,这时候如果 _hmt 已经被定义了,那么 ok,我就继续使用 _hmt 的原有值;否则就将 _hmt 初始化为一个空数组,以便后续代码可以正常运行。