• 预解析机制


    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)了,但是它存储的数据的那个空间里面存储的是代码是字符串,没有任何意义。

  • 相关阅读:
    数据结构-栈与队列
    数据结构-选择排序
    数据结构-冒泡排序
    数据结构-插入排序
    mysql安装最后一步不响应解决
    ScvQ常用的网站(持续更新...)
    排序算法(二)
    排序算法(一)
    原码、反码、补码
    进制转换
  • 原文地址:https://www.cnblogs.com/lyWebstrat/p/7121782.html
Copyright © 2020-2023  润新知