js中var与let、const有什么区别

45次阅读
没有评论

在JavaScript中,var、let和const都是用于声明变量的关键字,但它们之间有着一些不同。

  1. var

在ES5及之前的版本中,var是声明变量的主要方式。var声明的变量具有函数作用域,意味着它们只在声明它们的函数内部可见。如果在函数外部访问var声明的变量,它们将成为全局变量。

function example() {
  var x = 10;
  console.log(x); // 10
}

console.log(x); // ReferenceError: x is not defined
  1. let

在ES6中,引入了let关键字来声明块级作用域变量。这意味着let声明的变量只在它们被声明的块(花括号包围的代码块)内可见。这使得代码更加模块化和安全。

function example() {
  let x = 10;
  if (true) {
    let x = 20;
    console.log(x); // 20
  }
  console.log(x); // 10
}

console.log(x); // ReferenceError: x is not defined
  1. const

与let类似,const也是ES6中引入的关键字,用于声明块级作用域的常量。与变量不同,常量的值无法改变,这意味着它们必须在声明时初始化,而且不能被重新赋值。

const PI = 3.14;
console.log(PI); // 3.14

PI = 3.14159; // TypeError: Assignment to constant variable.

总结:

  • var声明的变量具有函数作用域,let和const声明的变量具有块级作用域;
  • var声明的变量可以被重新赋值,const声明的常量不能被重新赋值;
  • 在同一作用域内,let和const不能再次声明同名变量,而var可以。
正文完
 
评论(没有评论)