js问题 这段代码运用了什么知识点 是什么意思?


 <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', 'https://www.google-analytics.com/analytics.js', 'ga');

        ga('create', 'UA-76796224-1', 'auto');
        ga('send', 'pageview');
    </script>

执行匿名函数主要就是加载谷歌统计的js代码,并且生成ga这个全局匿名函数用的,参数做了一些压缩。具体说明如下。有帮助麻烦点个采纳【本回答右上角】,谢谢~~


    (function (i,//window
        s,// document
        o,//script
        g,//'https://www.google-analytics.com/analytics.js'
        r,//'ga'
        a,//a,m没未传参,预定义下面的2个script对象名
        m) {
        i['GoogleAnalyticsObject'] = r;//window['GoogleAnalyticsObject']='ga'//设置全局变量GoogleAnalyticsObject为ga字符串值
        i[r] = i[r]//判断window.ga匿名函数是否存在,存在就获取原来的值(函数),否则设置未一个匿名函数,就是下面调用的ga('create', 'UA-76796224-1', 'auto');ga('send', 'pageview');
            || function () {
                //这句和i[r]原理差不多,给window.ga匿名函数添加q属性(数组),不存在默认赋值为[],注意这里的arguments为调用ga函数时传入的参数
            (i[r].q = i[r].q || []).push(arguments)
            }, i[r].l = 1 * new Date();//
    

        a = s.createElement(o),//a=document.createElement('script')
            m = s.getElementsByTagName(o)[0];//获取DOM中第一个出现的script标签
        a.async = 1;//给新建script添加async属性,异步执行,参考:https://www.w3school.com.cn/html5/att_script_async.asp
        a.src = g;//设置新家script的src属性为谷歌统计js url
        m.parentNode.insertBefore(a, m)//在第一个出现的script前面插入谷歌统计script
    })(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');



    ga('create', 'UA-76796224-1', 'auto');
    ga('send', 'pageview');

    console.log(ga.q)//上面ga传入的2个参数数组

谷歌统计统计网站流量

第一知识点是匿名函数了,然后就是动态创建加载js

img

这就是个初始化跟踪器的代码,主要的逻辑都在https://www.google-analytics.com/analytics.js
这一套代码的逻辑
下方文档
获取和设置字段数据  |  适用于网站的 Google Analytics(分析)(analytics.js) https://developers.google.cn/analytics/devguides/collection/analyticsjs/accessing-trackers