A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

情况1:
[JavaScript] 纯文本查看 复制代码
var a = 20;     //在函数外声明并赋值,第一个a是全局变量
    function fn() {
        var a = 10; //在函数内部使用var声明并赋值,第二个a是局部变量
        console.log(a); //优先调用在函数内部的局部变量a的值10
    }
    fn();   //10
    console.log(a); //因为没有提升问题,直接输出全局变量a的值20
    //结果是 10  20

情况2:
[JavaScript] 纯文本查看 复制代码
var a = 20;     //在函数外声明并赋值,第一个a是全局变量
    function fn() {
        a = 10; //在函数内部没有使用var声明,那么在外面找到var关键词,然后在fn()函数内做赋值操作,第二个a是全局变量
        console.log(a); //优先调用在函数内部的局部变量a,但是在函数内没有找到局部的,那么直接去函数外找全局的a,10
    }
    fn();   //10
    console.log(a); //因为没有提升问题,直接输出全局变量a的值10
    //结果是 10  10

情况3:
[JavaScript] 纯文本查看 复制代码
var a = 20;     //在函数外声明并赋值,第一个a是全局变量
    function fn() { 
        console.log(a); //优先调用在函数内部的局部变量a,但是在函数内只有a的声明,在调用前无复制,所以是undefined
        var a = 10; //在函数内部没有使用var声明,那么在外面找到var关键词,然后在fn()函数内做赋值操作,第二个a是全局变量
    }
    fn();   
    console.log(a); //因为没有提升问题,直接输出全局变量a的值2




0 个回复

您需要登录后才可以回帖 登录 | 加入黑马