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
    }();
  • 相关阅读:
    Update语句到底是如何操作记录的?
    sp_helptext输出错行问题解决
    SSMS查询快捷方式设置
    快速定义临时表或表变量
    T-SQL逻辑查询
    基于交换的排序算法
    插入排序及其扩展
    Python之django基础第一天,认识django
    flask虚拟环境的安装和注意事项
    Linux基础
  • 原文地址:https://www.cnblogs.com/my_front_research/p/2289956.html
Copyright © 2011-2022 走看看