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这些语法产生的花括号

猜你喜欢

转载自blog.csdn.net/weixin_42898315/article/details/112208073