从品牌网站建设到网络营销策划,从策略到执行的一站式服务
在块级作用域中使用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,报错了。
控制语句、条件语句的作用域不是块级作用域,所以var
声明的变量可以穿透,导致变量冲突容易发生。ES6 新出的let
和const
关键字声明在这些语句中就能形成块级作用域。所以,我推荐使用let
来声明变量,而不是var
。
function fun() {
for (let i = 10; i > 0; i--) {}
console.log(i); // => Uncaught ReferenceError: i is not defined
}
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图