关键字 let 和关键字 var 的区别

var 关键字

在块级作用域中使用var声明变量,外面同级的块级作用域也可以访问。if、switch、for 等语句的作用域都没有块级作用域,所以说,在这些语句中声明的变量都能被外界访问,这是非常不安全的。

创新互联公司是一家专注于成都做网站、成都网站制作、成都外贸网站建设与策划设计,山丹网站建设哪家好?创新互联公司做网站,专注于网站建设10余年,网设计领域的专业建站公司;建站业务涵盖:山丹等地区。山丹做网站价格咨询:18982081108

function f() {
  if (true) { var x = 10; }
  console.log(x); // => 10
}

在 if 语句中通过var定义的变量,能够被外界访问。然而,在 Java 中是不允许的:

而 JavaScript 只有函数才能创建一个块级作用域,也可以用IIFE函数来创建一个块级作用域。

function f() {
  (function () { if (true) { var x = 10; } })();
  console.log(x); // => Uncaught ReferenceError: x is not defined
}

IIFE函数创建块级作用域,if 语句在里面声明变量,在第 3 行中使用变量 x,报错了。

let 关键字

控制语句、条件语句的作用域不是块级作用域,所以var声明的变量可以穿透,导致变量冲突容易发生。ES6 新出的letconst关键字声明在这些语句中就能形成块级作用域。所以,我推荐使用let来声明变量,而不是var

function fun() {
  for (let i = 10; i > 0; i--) {}
  console.log(i); // => Uncaught ReferenceError: i is not defined
}

分享标题:关键字 let 和关键字 var 的区别
分享URL:http://www.hxwzsj.com/article/dsojgjd.html

其他资讯

Copyright © 2025 青羊区翔捷宏鑫字牌设计制作工作室(个体工商户) All Rights Reserved 蜀ICP备2025123194号-14
友情链接: 外贸网站设计方案 营销网站建设 营销型网站建设 高端品牌网站建设 成都企业网站建设公司 成都商城网站建设 高端网站设计 网站制作公司 成都网站设计 企业网站设计 网站建设推广 手机网站设计 手机网站制作设计 成都网站建设 成都商城网站制作 网站建设公司 网站制作公司 成都响应式网站建设 成都定制网站建设 四川成都网站建设 重庆外贸网站建设 定制网站设计