Var、Let 和 Const

var、let 和 const

瓦尔

var a = 11;
{
var a = 8;
};
console.log(a);// 8
-------------------------------------------------------------------------
var a = 11;
{
a = 28;
};
console.log(a);// 28

用var声明的变量在全局范围内。我们甚至可以在块外访问 var 变量,因为它不是块作用域的。此外,我们可以在块内部和外部重新声明和重新分配 var 变量。


{
    let a = 24;
}
console.log(a);// referenceerror: a is not defined
-------------------------------------------------------------------------
{
    let a = 24;
    console.log(a);// 24
}
-------------------------------------------------------------------------
{
    let a = 24;
    a = 20;
    console.log(a);// 20
}// 
-------------------------------------------------------------------------
{
    let a = 24;
    let a = 20;
    console.log(a);//syntaxerror: identifier 'a' has already been declared
}
-------------------------------------------------------------------------
let a = 20;
{
let a = 24;
console.log(a);// 24
}

let有独立的内存空间和块作用域。用let声明的变量不能在块外访问,因为它们不在全局范围内。我们可以重新分配一个 let 变量。但是,我们不能在同一个块中重新声明相同的变量,但我们可以在不同的块中重新声明它。

常数

{
  const x = 4;  
}
console.log(x);//ReferenceError: x is not defined
-------------------------------------------------------------------------
{
  const x = 4;  
  console.log(x) ;// 4
}
-------------------------------------------------------------------------
{
  const x = 4;  
  const x = 2;  
}
console.log(x);//SyntaxError: Identifier 'x' has already been declared
-------------------------------------------------------------------------
{
  const x = 4;   
}
const x = 2;
console.log(x);// 2
-------------------------------------------------------------------------
const x = 2;// we can access the global(x)
{
  const x = 4;   // we cannot access the outside block
}
console.log(x);// 2

const有独立的内存空间,并且是块作用域的。一旦用 const 声明并初始化一个值,就不能重新声明或重新分配它。我们无法在其块之外访问 const 变量,因为它不在全局范围内。我们不能在同一块内重新声明变量,但可以在块外重新声明它。

以上就是Var、Let 和 Const的详细内容,更多请关注硕下网其它相关文章!