js(JavaScript)-全局作用域、函数作用域、块级作用域
全局作用域
在全局声明的变量拥有的作用域叫做全局作用域。
例如:
var a = "cat";
//a的作用域就是全局,在函数内部也能使用
function myFunction(){
}
函数作用域
在函数内声明的变量拥有的作用域叫做函数作用域
var a = "cat";
//a是全局作用域,b在函数外面不能使用,因为声明在函数内部,作用域是函数作用域
function myFunction(){
//函数内部才能使用b
var b = "dog";
}
块级作用域
es6新加的作用域,用let、const可以声明拥有块级作用域.
{
var x = 10;
}
//此处可以用x
{
var y = 20;
}
//此处不能用y
作用域问题
使用var重新声明变量会带来问题
var x = 10;
{
var x = 888;
}
console.log(x);//这里会显示888
var x = 10;
{
let x = 888;
}
console.log(x);//这里会显示10
之前的困惑
块级作用域之前在js里是没有的,是在es6中才出现的,就是{ }产生的作用域,但是需要有let、const才算块级作用域,花括号可以是单个花括号也可以是if,for这些语法产生的花括号
还没有评论,来说两句吧...