美文网首页H5前端技术分享Web前端之路终端研发部
变量var声明和函数function声明优先级

变量var声明和函数function声明优先级

作者: 胡哥有话说 | 来源:发表于2017-11-11 20:49 被阅读39次

    变量声明优先级

    使用var关键字和function关键字声明的变量,会被JS的解释器优先解析执行,具有优先级

    使用var关键字声明变量

    1. 看代码说话
        // 在script中直接打印输出变量a
        console.log(a);    // Uncaught ReferenceError: a is not defined
    
    2. 看代码说话
        console.log(a);    // 此处输出 undefined
        var a = 20;        // 赋值操作
        console.log(a);    // 此处输出 20
    

    PS:如果两道问题都OK,请下一页!答错的小伙伴请看开眼!

    // 当程序来执行时,首先var关键字声明变量优先执行,进行变量声明,却没有进行赋值
    console.log(a);    // 变量a已经声明,但是没有赋值
    var a = 20;        // 此处变量a已经进行赋值操作了
    console.log(a);    // 20
    

    使用function关键字声明函数

    function 关键字声明的函数会被优先执行

    1. 看代码说话
    
        // 输出变量
        var test = 10;
    
        // 定义函数
        function test () {
            console.log('木木哒..')
        }
    
        // 调用函数
        test();    
    
        // 以上代码在执行时会发生情况?
        // 页面显示错误, test is not a function
    

    PS: 小伙伴们,来开眼!

    以上代码执行过程:
        1. 执行var test变量的声明
        2. function关键字声明的函数生效,此刻test是一个function
        3. 顺序执行程序,对test进行赋值 test = 10, 类型变为 number
        4. 当调用test函数时,此刻test已经是number类型了,所以发生错误
    

    相关文章

      网友评论

        本文标题:变量var声明和函数function声明优先级

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