美文网首页
变量提升

变量提升

作者: lssj | 来源:发表于2019-11-21 15:03 被阅读0次

    参考信息:https://www.runoob.com/js/js-hoisting.html

    对变量提升的解释:

    关键字:变量(或者函数)、声明、提升,这是三个部分,表示把(所有)变量(函数)的声明操作提升到了执行操作的前面(以上信息限定在当前作用域内)。

    变量声明与函数声明:

    变量声明的时候仅仅是声明,只是表示它存在,后续代码执行可以对它进行任意操作,包括赋值。当一个函数被声明时,不光是声明了函数(名称),此时该函数也被赋予了函数体,所以我们将一个function fn1(){}写在后面,而将函数执行fn1()写在前面可以执行,这是一个函数的声明提升。
    (下图第一行红字,如果不声明,该变量为全局变量,如果先使用,并在下方声明,该变量则为局部变量)


    image

    当引用了一个js文件时,先提升所有的变量声明,然后才开始从第一行代码开始执行。举例证明变量提升的存在

    //a.js文件    
    console.log(x)
    //这样就会在控制台抛出错误,因为变量x即未声明(var x),
    //也未使用(x=1),所以直接使console调用就会抛出错误
    
    //b.js文件    
    console.log(x)
    var x
    //这样在控制台不会抛错,但是打印出来的是undefined,因为打印的时候还未赋值
    

    相关文章

      网友评论

          本文标题:变量提升

          本文链接:https://www.haomeiwen.com/subject/tydwpctx.html