博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS 作用域 var与let 区别
阅读量:5758 次
发布时间:2019-06-18

本文共 594 字,大约阅读时间需要 1 分钟。

在es6入门时,最让人傻傻分不清楚的就是var与let带来的作用域的苦恼。最近又一次翻看阮一峰老师的文章,重新有了自己的小结。

  1. 代码分析
var a = [];for (var i = 0; i < 10; i++) {  a[i] = function () {    console.log(i);  };}a[6](); // 10
var a = [];for (let i = 0; i < 10; i++) {  a[i] = function () {    console.log(i);  };}a[6](); // 6

以上两段代码区别在于var与let使用的作用域不同。

1.var 变量的作用域是全局,而let 是局部的块作用域即for循环内。
2.明确循环内部的i与console.log(i)中的i是在不同的作用域中,它们有各自单独的作用域。
3.全局变量唯一性,var 声明的变量i在循环中被不断覆盖最终只是唯一的10,因此在外部调用中无论调用a数组的哪一个,最终都是10。
4.局部使用 let 定义时只在该函数作用域内部有效。例子如下:

for (let i = 0; i < 10; i++) {  // ...}console.log(i);// ReferenceError: i is not defined

个人小结,如有错误,望各位大佬指正。

转载地址:http://zevkx.baihongyu.com/

你可能感兴趣的文章
【VMCloud云平台】SCAP(四)租户(一)
查看>>
linux释放内存的方法
查看>>
基于 Android NDK 的学习之旅----- C调用Java
查看>>
我的友情链接
查看>>
Android图形显示系统——下层显示4:图层合成上(合成原理与3D合成)
查看>>
Windows 10 技术预览
查看>>
Tomcat http跳转https
查看>>
一个自动布署.net网站的bat批处理实例
查看>>
tomcat 安装
查看>>
我的友情链接
查看>>
Centos6.6安装选包及基础场景说明
查看>>
java基础面试题-1
查看>>
深克隆与序列化效率的比较
查看>>
lamp+nginx代理+discuz+wordpress+phpmyadmin搭建一
查看>>
nagios监控使用139邮箱报警
查看>>
Windows Phone 7 中各种Task解说(启动器与选择器)
查看>>
罗森伯格助力2011年中国智能建筑技术发展应用论坛哈尔滨站
查看>>
网络割接
查看>>
windows server 2016 活动目录(二)
查看>>
openstack G版 修改vm的flavor级别
查看>>