ECMAscript 变量作用域

使用var操作符声明的变量与未使用var操作符声明的变量区别

未使用var操作符声明

    function test() {
        message='hi';
        console.log(message);
    }
    console.log(message);

未使用var操作符声明的变量message为全局变量,未调用test()方法, message就属于未定义状态。

function test() {
        message='hi';
        console.log(message);
    }
    test();
    console.log(message);

未使用var操作符声明的变量message为全局变量,必须调用test()方法, message才会有效。

使用var操作符声明

局部变量

function test() {
        var message='hi';
        console.log(message);
    }
    test(); 
    console.log(message);

在函数内用var声明的变量,调用test()方法后message被销毁,控制台输出找不到此变量。

原文地址:https://www.cnblogs.com/hideonbush/p/7379821.html