首页 >web前端 >js教程 >JavaScript 中 let、const、var 的区别?

JavaScript 中 let、const、var 的区别?

WBOY
WBOY原创
2024-08-13 19:03:51998浏览

let, const , var difference in Javascript?

在 JavaScript 中,let、const 和 var 用来声明变量,但它们在三个方面有所不同:

1。范围
2.重新分配
3.吊装

1.范围:

var 是一个函数作用域,意味着我们在函数内的任何位置访问 var 变量,如果我们尝试在函数外部访问它,它将显示错误 undefined
示例:-

function demo(){
  if(true){
    var n = 3;
  }
  console.log(n)
}
console.log(n) //ReferenceError: n is not defined
demo();

letconst 是块,意味着我们只能在范围内访问它们,否则会显示未定义错误
示例:-

function demo(){
  if(true){
    let n = 3;
    const m = 5;
     console.log(n) // 3
     console.log(m) // 5
  }
  console.log(n) //ReferenceError: n is not defined
  console.log(m) //ReferenceError: n is not defined
}
console.log(n) //ReferenceError: n is not defined
console.log(m) //ReferenceError: n is not defined
demo();

2.重新分配

  • var:可以在其作用域内重新赋值和重新声明。
  • let:可以重新赋值,但不能在其范围内重新声明。
  • const:不能重新分配或重新声明。变量本身是不可变的,但分配给 const 的对象和数组仍然可以修改 .

3.吊装

  • var 被提升,这意味着它在声明之前就可以访问,但在代码到达初始化变量的行之前,它的值将是未定义的。
  • let 也被提升,但与 var 不同的是,由于“临时死区”,在声明之前无法访问它。
  • const 声明的变量也会被提升,但必须在声明时初始化,并且不能重新分配。但是,如果变量是对象或数组,则可以修改其内容(例如,在数组中添加或删除项目)。
// var example
console.log(a); // undefined (due to hoisting)
var a = 10;
console.log(a); // 10

// let example
console.log(b); // ReferenceError: Cannot access 'b' before initialization
let b = 20;
console.log(b); // 20

// const example
const c = 30;
c = 40; // TypeError: Assignment to constant variable

以上是JavaScript 中 let、const、var 的区别?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn