JavaScript中let和var的区别

在 JavaScript 中,var 是老版本的变量声明方式(ES5 及以前),而 let 是 ES6 新引入的(更现代)。let 主要为了解决 var 的痛点,让代码更安全、可预测。简单说,var 容易出 bug,let 更严谨。以下是核心区别,用表格对比,便于看清。

方面var(函数/全局作用域)let(块级作用域)
作用域函数作用域:变量在整个函数内有效,甚至在声明前也能用(但值为 undefined)。全局变量会污染全局。块级作用域:只在 {} 内有效(如 if、for 循环)。不会污染外层。
变量提升(Hoisting)支持:声明会被“提升”到函数顶部,但赋值不提升。用前是 undefined。不支持:必须先声明再用,否则 ReferenceError。
重复声明允许:在同一作用域重复 var,不会报错(但覆盖前值)。不允许:在同一作用域重复 let,会报 SyntaxError。
典型场景老代码、循环中易出错(如闭包问题)。现代代码首选,尤其循环、条件块中。

© 版权声明
THE END
喜欢就支持一下吧
点赞8赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容