JavaScript中的作用域

1.全局作用域

JavaScript中,在{}外面的作用域,我们就称之为全局作用域

	//全局作用域
	var num1 = 123;
	let num2 = 456;
	
	if(...){
		...
	}

2.局部作用域

JavaScript中,在函数后面{}中的作用域,我们就称之为局部作用域

	//局部作用域
	function test() {
	        console.log("Hello World!");
	    }

3.块级作用域

JavaScript中,只要是没有和函数结合在一起的{}中的作用域, 我们就称之为块级作用域

    //块级作用域
    if (...) {
        ...
    }
    while (...) {
        ...
    }
    do {
        ...
    }while (...)

4.注意点

  • 在块级作用域中,通过var定义的变量是全局变量,而通过let定义的变量是局部变量

    if (true) {
        //全局变量var num1 = 123;
        //局部变量
        let num2 = 456;
    }
        console.log(num1);
        console.log(num2);
    

    在这里插入图片描述

  • 在局部作用域中,通过var定义的变量是局部变量,通过let定义的变量也是局部变量

    function test() {
    //局部变量
        var num1 = 123;
        //局部变量
        let num2 = 456;
        }
        test();
        console.log(num1);
        console.log(num2);
    

    在这里插入图片描述

  • 无论是在块级作用域还是在局部作用域中,省略定义变量的关键字let或var,那么该变量就会变为全局变量

    if(true) {
        num1 = 123;
        num2 = 456;
    	}
        function test() {
            num3 = 111;
            num4 = 222;
        }
        test();
        console.log(num1);
        console.log(num2);
        console.log(num3);
        console.log(num4);
    

    在这里插入图片描述
    如有错误,还请评论指出

posted @ 2020-04-06 21:05  陈太浪  阅读(274)  评论(0编辑  收藏  举报