zoukankan      html  css  js  c++  java
  • 预解析机制

    js在预解析阶段先找所有声明,如果是var  先给var后的变量定一个undefind  如果是function 就把function当做字符创赋给函数名

    如果名字形同的情况function会把覆盖var   后面function会覆盖前面function

    1. 定义

    预解析:在当前作用域下,js运行之前,会把带有var和function关键字的事先声明,并在内存中安排好。然后再从上到下执行js语句。

    预解析只会发生在通过var定义的变量和function上。


    2. var

    通过var关键字定义的变量进行预解析的时候:都是声明declare,不管它有没有赋值,都会赋值undefined。

    1                 alert(a);   //弹出function a(){alert(4)}
    2         var a = 1;
    3         function a(){alert(2)};
    4         alert(a);//弹出1
    5         var a = 3;
    6         function a(){alert(4)};
    7         alert(a)//弹出3                

    只要是通过var定义的,不管是变量,还是函数,都是先赋值undefined,如果是变量,也不管变量有没有赋值,在预解析阶段,都是会被赋值为undefined。

    2. function

    function进行预解析的时候,不仅是声明而且还定义(define)了,但是它存储的数据的那个空间里面存储的是代码是字符串,没有任何意义。

  • 相关阅读:
    SQL随记(四)
    一些有用的方法命令
    导航目录
    HTML中       等6种空白空格的区别
    MyBatis学习资料
    Spring Cloud资料
    聚类算法对比
    Spark 读取HBase数据
    ZooKeeper设置ACL权限控制
    大数据工具选择
  • 原文地址:https://www.cnblogs.com/lyWebstrat/p/7121782.html
Copyright © 2011-2022 走看看