重庆SEO前端技术博客

重庆SEO前端技术博客

当前位置: 主页 > javascript >

JavaScript中什么是全局变量以及局部变量

时间:2020-10-28 11:43来源:未知 作者:点击:
JavaScript中什么是全局变量以及局部变量 什么是全局变量 :在任何地方都可以访问到的变量就是全局变量 什么是局部变量 :在固定的代码片段内可以访问到的变量,如常见的函数内部
JavaScript中什么是全局变量以及局部变量
 
什么是全局变量:在任何地方都可以访问到的变量就是全局变量
 
什么是局部变量:在固定的代码片段内可以访问到的变量,如常见的函数内部变量,就是局部变量
 
它们的作用是在不同的作用域下执行,变量起作用的区域。
 
可以用一个例子来形容,局域网和互联网,一个只能在一个区域使用,一个可以在所有地方使用。
 
例子:局部变量
 
function a(){
    var n=10;         //在函数里面声明的变量      它的作用范围只能是在函数里
    window.document.write(n);
}
 
window.document.write(n);     //调用不了
 
例子:全局变量
var a = 1;             //全局变量声明,且赋值
function n(){
    var c=2;
    var d=a+c;           //调用全局变量a与,局部变量c
    return d;             //返回值为变量d
}
var i=n()              //声明变量i,接收函数n()的返回值
console.log(i);        //打印
 
//变量提升
var a;
console.log(a);
a = 2;       //变量提升
// 在代码执行之前变量已经在编译阶段被声明
 
// 结果:undefined
 
 
 
 
在了解最用域链的问题之前呢,我们先要知道什么是作用域(JavaScript中什么是全局变量以及局部变量),在函数中,每一个函数都代表一个作用域。
函数作用域:
function a1(){
    var a=2;
    console.log(a);
}
a1();
console.log(a);
 
看看上面的例子:a1()函数的结果是2
而最后的console.log输出是报错,为什么呢?因为在整个js代码中没有找到变量a,而我们声明的变量a是在函数中声明的,它也只能在该函数中使用,不能够直接调用出来
这就是函数的作用域:现在我们来了解什么是函数的作用域链:
var a1= 3;  //全局变量
function w1(){
    function w2(){
        function w3(){
            function w4(){
                console.log(a1); //调用a1变量
            }w4();//调用
        }w3();//调用
    }w2();//调用
}w1();//调用
//结果:3
JavaScript中什么是全局变量以及局部变量

------分隔线----------------------------