欢迎光临散文网 会员登陆 & 注册

碎片时间学编程「293]:JavaScript 中的 var、let 和 const 有什么区别?

2023-03-29 12:25 作者:路条编程  | 我要投稿


JavaScript 具有三种变量声明语句:var,let和const. 后两者是在 ES6 中添加的,var 变量从以前的版本开始就存在。首先要注意的事情之一是const定义常量(即不会重新分配的值),而var、let 定义变量。然而,var、let行为与两者不同,并且const以其他各种方式。

范围

声明的变量var是函数作用域的,与用声明的变量let或const块作用域的变量相反。

const scopeExample = () => {  var a = 'var';  let b = 'let';  console.log(a, b); // 'var', 'let'  {    var c = 'var';    let d = 'let';    console.log(c, d); // 'var', 'let'  }  console.log(c); // 'var'  console.log(d); // Throws a ReferenceError};

吊装

当用 var 声明的变量被提升到封闭范围时,用let或 const 声明的变量在其定义被评估之前不会被初始化。

const hoistingExample = () => {  console.log(a); // undefined  var a = 'var';  console.log(a); // 'var'  console.log(b); // ReferenceError  let b = 'let';  console.log(b); // 'let'};

全局对象属性

在顶层,用 let 声明的变量与用 const 或var声明的变量不同,它在全局对象上创建一个属性。

var a = 'var';let b = 'let';console.log(window.a); // 'var'console.log(window.b); // undefined

重新申报

在严格模式下,用 with 声明的变量var可以在同一范围内重新声明,而用let或声明的变量则不允许这样做const。

'use strict';var a = 'var1';var a = 'var2';let b = 'let1';let b = 'let2'; // SyntaxError

更多内容请访问我的网站:https://www.icoderoad.com


碎片时间学编程「293]:JavaScript 中的 var、let 和 const 有什么区别?的评论 (共 条)

分享到微博请遵守国家法律