所谓的块级作用域,可能是一个{},一个代码块,一句话

let关键字

let 与 var 区别
区别 var let
变量提升
作用域 全局作用域、函数作用域 全局作用域、函数作用域和块级作用域
提前声明
重复声明
重新赋值

let或const没有声明提前,相当于暂时性死区(TDZ)

与函数的关系
  • var
var v = 100;
function fn() {console.log(v);// undefinedvar v = 1000;console.log(v);// 1000
}
fn();
  • let
let v = 100;
function fn() {// 函数作用域封闭–全局作用域中的变量与当前函数作用域无关console.log(v);// Cannot access 'v' before initializationlet v = 1000;console.log(v);// 1000
}
fn();

使用let关键字全局的变量和当前的无关(封闭)

块级作用域

块级作用域只能用let关键字,但是let关键字用在全局作用域、函数作用域、块级作用域中

为什么需要块级作用域
  • 局部变量可能覆盖全局变量

  • 在循环体中用于计数的变量泄露为全局变量

循环语句与数组的关系

var arr = [];
for (var i = 0; i < 10; i++){arr[i] = function () {return i}
}
console.log(arr);

[ES6] 细化ES6之 -- 块级作用域相关推荐

  1. ES6基础2(块级作用域、数组对象解构)-学习笔记

    文章目录 ES6基础2(块级作用域.数组对象解构)-学习笔记 块级作用域 数组解构 对象解构 字符串解构 函数的参数解构 ES6基础2(块级作用域.数组对象解构)-学习笔记 块级作用域 //let c ...

  2. ES6(一)——字面量的增强、解构、let/const、块级作用域、暂时性死区

    一.字面量的增强 ES6中对 对象字面量 进行了增强,称之为 Enhanced object literals(增强对象字面量). 字面量的增强主要包括下面几部分: 属性的简写:Property Sh ...

  3. ES6 块级作用域详解

    什么是块级作用域 ES6 中新增了块级作用域.块作用域由 { } 包括,if 语句和 for 语句里面的 { } 也属于块作用域. 为什么需要块级作用域 第一种场景:内部变量会覆盖外部变量 var t ...

  4. ES6规范前后块级作用域与函数声明的缠缠绵绵

    今天我们就以上面的这个例子来说一下,块级作用域与函数声明在ES6前后的纠葛,当然在ES6之前是没有块级作用域的,但为了与ES6统一,使文章更简明,所以把这对'{}'统一称为块级作用域. 开正题之前,还 ...

  5. java区块作用域_ES6-let、const和块级作用域

    1.介绍 总的来说,ES6是在ES2015的基础上改变了一些书写方式,开放了更多API,这样做的目的最终还是为了贴合实际开发的需要.如果说一门编程语言的诞生是天才的构思和实现,那它的发展无疑就是不断填 ...

  6. let、const和var的区别(涉及块级作用域)

    let .const和var的区别 let.const.var在js中都是用于声明变量的,在没有进行ES6的学习前,我基本只会使用到var关键字进行变量的声明,但在了解了ES6之后就涉及到了块级作用域 ...

  7. c语言块级作用域_块级作用域问题ES5 ES6

    ES5: 1.  没有块级作用域 在其他类C语言中,由花括号封闭的代码块都有自己的作用域(如果用ECMAScript的话来说,就是它们自己的执行环境), 所以支持根据条件来定义变量. if(true) ...

  8. es6 ie不兼容 函数_ES6:什么是块级作用域?

    在 ES5 只有全局作用域和函数作用域,没有块级作用域,这带来很多不合理的场景. 我们先来看一下下面这种情况:内层变量可能会覆盖外层变量. var txt = '外层变量-->你好呀';func ...

  9. ES6中块级作用域下的函数声明

    背景 因为ES5的时候没有块级作用域,所以ES5规定不能再if这样的块中声明函数,但是为了兼容各大浏览器并没有严格遵守这条规定. ES6的时候引入了块级作用域,规定在块级作用域中声明函数就相当于使用l ...

最新文章

  1. pandas基于时序数据计算模型预测推理需要的统计数据(累计时间、长度变化、变化率、方差、均值、最大、最小等):范围内的统计量、变化率、获得数据集最后的几条数据的统计量、变化率、获得范围内的统计量
  2. python 离线下载和安装第三方库 .whl wheel 文件
  3. Xcode bug: imageNamed:方法返回nil
  4. 快速排序 python菜鸟教程-1.6 快速排序
  5. PowerShell: 详解Windows10常用的PowerShell高级任务
  6. 可能用得上的jquery 插件
  7. 对于mysql的用户权限管理
  8. Docker镜像常用命令(三)
  9. PHP:同时发送多个异步ajax请求,但数据却是按同步顺序返回
  10. 揭秘淘宝平台广告策略,拆解最佳投放实践
  11. 读《从优秀到卓越》乱摘
  12. python中float和double有什么区别_关于C++:float和double的区别是什么?
  13. java基础面经--下
  14. 软件评测师题库--操作系统基础知识
  15. 在有n个学生的成绩表里,每条信息由姓名与分数组成,要求:1按分数高低次序,输出每个学生的名字,分数相同的为同一名次,2按名次输出每个学生的姓名与分数。
  16. 利用FME计算椭球面积
  17. 01 【nodejs简介】
  18. 相机溯源之传统方法(PRNU提取)
  19. KS值和GINI系数
  20. 简单制作《坦克大战》

热门文章

  1. pads元件类型如何修改_pads logic元件库修改了,怎样更新到原理图
  2. maven打包忽略注解_maven打包后pom.properties中的注释问题-阿里云开发者社区
  3. linux eclipse stm32,在ubuntu下利用eclipse搭建stm32开发环境和st-link调试
  4. php 保护连接字符串,PHP OOP更新扩展类__construct上的受保护字符串
  5. kewail node 短信_Node.js代码示例_Node.js短信短信 | 微米-中国领先的短信彩信接口平台服务商...
  6. python元组添加元素_2分钟学会Python的元组使用
  7. MongoDB模糊查询-查询某月的数据
  8. 12-1 定位(相对,绝对,固定)
  9. hdu 2034 - 集合操作
  10. ASP.NET Callback 回调实用讲解