js没有块级作用域

执行环境的类型只有两种---全部和局部(函数)

没有块级作用域

	if(true){
	    var color = "blue";
	}
	alert(color)

在C、C++或Java有块级作用域的语言中,变量在if语句执行完毕后被销毁,但在Javascript中,if语句中的变量声明会将变量添加到当前的执行环境(在这里是全局环境)中。for循环也是如此。

        for(var i = 0; i < 10; i++){
            
        }
        console.log(i)

对于有块级作用域的语言来说,for语句初始化变量的表达式所定义的变量,只会存在于循环的环境中,而对于Javascript来说,由for语句创建的变量在for循环执行结束后,也依旧会存在于循环外部的执行环境中。

转载于:https://my.oschina.net/u/4078166/blog/3020423

你可能感兴趣的:(js没有块级作用域)