美文网首页
js中的变量作用域

js中的变量作用域

作者: 冒险小A | 来源:发表于2018-07-09 09:51 被阅读0次
<script>
    var num = 5;
    if (num > 3) {
        var sum=7;
    }
    console.log(sum);
//    此时打印结果会是什么呢?
</script>

这段代码打印结果为7而不是undefined
因为在js中,只有在函数内部声明才会是局部变量,否则是全局变量
此时就算在if里,也是全局变量


练习1:
<script>
    var num = 10;
    fun();
    function fun() {
        console.log(num);
        var num = 20;
    }
</script>

输出结果为:undefined
解析:
此时在函数内,会声明提前,相当于

function fun() {
        var num;
        console.log(num);
        num = 20;
    }

在函数内,优先去找函数内部的声明,所以var num = 10;没有起到作用


练习2:
<script>
    f1();
    console.log(c);
    console.log(b);
    console.log(a);
    function f1() {
        var a=b=c=9;
        console.log(a);
        console.log(b);
        console.log(c);
    }
</script>

输出结果为:9,9,9,9,9,报错
解析:
此时等价于

<script>
    f1();
    console.log(c);
    console.log(b);
    console.log(a);

    function f1() {
        var a = 9;
        b = 9;
        c = 9;
        console.log(a);
        console.log(b);
        console.log(c);
    }
</script>

这里a为局部变量;b,c没有用var声明,为全局变量.

相关文章

  • 变量作用域

    变量作用域:静态作用域、动态作用域JS变量作用域:JS使用静态作用域JS没有块级作用域(全局作用域、函数作用域等)...

  • JavaScript快速上手:关于闭包的知识分享

    JS中变量的作用域 在理解闭包之前,我们得弄清楚JS中变量的作用域原理,它分为全局作用域和局部作用域,它有一...

  • JavaScript快速上手:关于闭包的知识分享

    01 JS中变量的作用域 在理解闭包之前,我们得弄清楚JS中变量的作用域原理,它分为全局作用域和局部作用域,它有一...

  • JS高级-闭包、沙箱

    作用域,作用域链,预解析 变量:局部变量、全局变量 作用域:变量的使用范围 js中没有块级作用域,一对括号中定义的...

  • 2019-08-13JS里面的作用域Scope

    作用域指一个变量的作用范围。 JS的作用域 在JS中,有两种作用域 全局作用域直接编写在script标签中 JS代...

  • js中作用域与作用域链

    js中作用域与作用域链 作用域 *作用域基本概念 作用域一般指变量的作用范围,变量分为全局变量和局部变量,对应的作...

  • 作用域与变量提升

    作用域与变量提升 作用域 JS中变量的作用域有全局作用域和局部作用域两种,作用域简单来讲就是变量与函数的可访问范围...

  • 闭包

    导学:变量作用域:全局作用域、局部作用域 js中,函数内部可以直接读取全局变量 *链式作用...

  • JS作用域&作用域链

    作用域&作用域链 作用域的概念 变量作用域的概念:变量作用域就是一个变量可以使用的范围。 JS中首先有一个最外层的...

  • 2018-08-03

    js作用域和作用域链 什么是作用域 ⼀个变量的作⽤域是程序源代码中定义这个变量的区域。对象, 函数也是变量。作...

网友评论

      本文标题:js中的变量作用域

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