码迷,mamicode.com
首页 > 编程语言 > 详细

【Python全栈-JavaScript】JavaScript变量的作用域

时间:2019-06-19 15:08:04      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:作用域   rip   定义变量   center   pytho   pre   原因   前缀   使用   

JavaScript变量的作用域全局变量

1.当在script中定义变量,在当前script中的定义前调用是undefined,没有定义该变量时调用报错。原因是在内存中开辟了该变量的存储位置,(当执行script时将所有定义的变量名先存到栈中)

当代码解释到该语句时才会将值存在栈中,没有执行之前调用该变量就是undefined,如果没有定义就不会在内存中开辟存储位置,因此就会报错。

2.如果在上一个script中调用下面的script的变量时,这时候不但没有值,而且没有开辟存储空间。因此,在上一个script中调用下面的变量永远都是报错的。

3.一旦定义变量完成后,在后面的script中都是可以任意调用,因为这些变量都是全局变量。

<script>
    console.log(xx);    //在另一个script中调用,而且调用后面的定义变量内容 会报错
</script>
<script>
    console.log(xx);    //undefined  xx变量名存在栈中,但还没有赋值
    var xx = 1;
    console.log(xx);    //xx是全局变量后面可以正常调用
</script>
<script>
    console.log(xx);    //xx=1  可以调用到
</script>

全局变量VS 局部变量

/*全局变量  就是在script标签下直接使用var定义的变量,
                全局变量可以应用于所有的代码中调用获取.范围非常大
      局部变量 就是在函数中使用var定义的变量,仅用于当前函数的执行范围内

                低耦合(减少耦合度)*/

    function fn1() {
        // 这里使用var定义的变量是有作用域的,他的范围仅限于该函数内部
        // 函数运行完成后,函数内定义的变量将会自动销毁
        var c=10;   //局部变量
        c+=3;
        console.log(c);
        //函数中修改全局变量后,全局变量就完成了修改,外面调用时,也是修改后的
        xx+=10;
    }
    fn1();      //xx=11
    fn1();      //xx=21
    console.log(xx,"______");   //21

全局变量和局部变量的重名

//全局变量和局部变量的重名
    var s1=10;
    function fn2() {
        /*
        (局部变量和全局变量重名,在函数中局部会覆盖全局)
        *  如果在函数中定义了某个局部变量名,那么在该函数中所有这个变量都是局部变量
        *  不能通过直接使用变量名的方法调用到外部的全局变量了
        * */
        var s1=20;
        s1+=20;     //40
        window.s1+=10;  //如果全局变量的名称在函数中和局部变量名相同,想要调用全局变量时,加上window前缀
        console.log(‘全局变量s1--->‘,window[‘s1‘]);     //全局变量也可以这样调用
        console.log(s1);    //局部变量 40
    }

    fn2();
    console.log(s1);    //全局变量s1  10

    var s2=10;
    function fn3() {
        //console.log(s2);//undefined,因为在函数中一旦第一局部变量,该函数中所有位置都是局部变量
        s2+=10;
        console.log(s2);//NaN,undefined+10
        var s2=20;
    }
    fn3();

 

【Python全栈-JavaScript】JavaScript变量的作用域

标签:作用域   rip   定义变量   center   pytho   pre   原因   前缀   使用   

原文地址:https://www.cnblogs.com/XJT2018/p/11051159.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!