zoukankan      html  css  js  c++  java
  • js预解析学习

    1.js解析器运行时会产生全局对象global,其他全局变量则是global对象的属性。

    2.非顶层代码中的变量为局部变量,又称为调用对象的属性。

    3.预解析var变量,初始化为undefined(预解析是入栈的过程,无论是引用数据类型还是非引用数据类型,都要分配内存。引用类型数据在内存中存放引用指针,非引用数据类型存放变量名),function f(){}这样的函数会被直接编译,非var声明的变量默认为全局变量。

    4.创建作用域执行环境,依次为:调用对象(细分为嵌套函数的调用对象,调用对象)、全局对象。

    ok,明白了以上几点,以下的几个示例便没有什么问题了。

    1.

    f7();
    f6();//error,f6 is not a function
    function f7(){
    alert("f7函数");
    }
    var f6=function(){
    alert("f6函数");
    }
    var f5=function(){
    s="global";
    }();

    2.

    var f5=function(){
    s="global";
    }();
    f5();
    alert(s);//display:global

    3.

    var f=function(){
    s="haha";
    alert("第一个s:"+s);//display:haha
    var s="hehe";
    alert("第二个s:"+s); //display:hehe
    }();

    4.

    var s="global";
    var f4=function(){
    alert("s的值是:"+s);//display global
    s="local";
    alert("s的第二次值是:"+s);//display local
    }();

     5.

    var a="yeye";
    var f2=function(){
    alert("第一个a:"+a);//display undefined
    var a="gaga";
    alert("第二个a:"+a); //display gaga
    }();
  • 相关阅读:
    gil
    异步
    字符串 最长回文字串
    字符串 最长公共前缀
    数组 合并区间
    python 排序
    2021.9.3 阿里笔试AK贴
    SIP协议详解
    fiddler抓包各字段的含义
    常见的HTTP状态码列表
  • 原文地址:https://www.cnblogs.com/my_front_research/p/2289956.html
Copyright © 2011-2022 走看看