js实例教程-js下ES6的let和var介绍

发布时间:2018-12-04 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了js实例教程-js下ES6的let和var介绍脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。

1.letVAR

let:有块级作用域,必须先声明再使用变量(不存在声明提前),不允许重复声明。

         let arr=[];         for (var a = 0; a < 10; a++) {             arr[a]=function(){                 console.LOG(a);             };         }              for (let a = 10; a < 20; a++) {             arr[a]=function(){                 console.log(a);             };         }         console.log(arr);   //可以看到有20个函数的数组         //arr[3];  查看控制台可以看出,作用域链上只有两个,一个是script作用域,往下是window(let出现的是arr在script中,window中是a=10)         //arr[13]; 作用域链上有三个,一个Block里有a=13(证明每次循环的a都被留给函数作为作用域顶端等待函数执行产生),一个script,一个window里有a=10(证明let只在for中起作用,没污染全局)  
 var arr = [];         let b = 33;          function a() {             if (true) {                 var b = 22;                 let c = 11;                  function d() {                     console.log(b, c);                 }                 return d;             }          }         console.dir(a());//看作用域链---有四级作用域

Block是由let产生的块级作用域:只有c是11;

Closure是由var产生的,b是22;

Script是由let产生的类似于全局的块级作用域:b是33;

Global作为全局作用域。

证明:但凡有块作用域,let就会被分到自己的块里,而本来应该相同级别处于同一作用域的var声明的变量因为不存在块级作用域,反而到了上一级。

1.let和var

let:有块级作用域,必须先声明再使用变量(不存在声明提前),不允许重复声明。

         let arr=[];         for (var a = 0; a < 10; a++) {             arr[a]=function(){                 console.log(a);             };         }              for (let a = 10; a < 20; a++) {             arr[a]=function(){                 console.log(a);             };         }         console.log(arr);   //可以看到有20个函数的数组         //arr[3];  查看控制台可以看出,作用域链上只有两个,一个是script作用域,往下是window(let出现的是arr在script中,window中是a=10)         //arr[13]; 作用域链上有三个,一个Block里有a=13(证明每次循环的a都被留给函数作为作用域顶端等待函数执行产生),一个script,一个window里有a=10(证明let只在for中起作用,没污染全局)  
 var arr = [];         let b = 33;          function a() {             if (true) {                 var b = 22;                 let c = 11;                  function d() {                     console.log(b, c);                 }                 return d;             }          }         console.dir(a());//看作用域链---有四级作用域

Block是由let产生的块级作用域:只有c是11;

Closure是由var产生的,b是22;

Script是由let产生的类似于全局的块级作用域:b是33;

Global作为全局作用域。

证明:但凡有块作用域,let就会被分到自己的块里,而本来应该相同级别处于同一作用域的var声明的变量因为不存在块级作用域,反而到了上一级。

觉得可用,就经常来吧!Javascript技巧 脚本宝典 欢迎评论哦!&nbsp;js技巧,巧夺天工,精雕玉琢。小宝典献丑了!

脚本宝典总结

以上是脚本宝典为你收集整理的js实例教程-js下ES6的let和var介绍全部内容,希望文章能够帮你解决js实例教程-js下ES6的let和var介绍所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。