[ES6] 细化ES6之 -- 块级作用域
所谓的块级作用域,可能是一个
{}
,一个代码块,一句话
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之 -- 块级作用域相关推荐
- ES6基础2(块级作用域、数组对象解构)-学习笔记
文章目录 ES6基础2(块级作用域.数组对象解构)-学习笔记 块级作用域 数组解构 对象解构 字符串解构 函数的参数解构 ES6基础2(块级作用域.数组对象解构)-学习笔记 块级作用域 //let c ...
- ES6(一)——字面量的增强、解构、let/const、块级作用域、暂时性死区
一.字面量的增强 ES6中对 对象字面量 进行了增强,称之为 Enhanced object literals(增强对象字面量). 字面量的增强主要包括下面几部分: 属性的简写:Property Sh ...
- ES6 块级作用域详解
什么是块级作用域 ES6 中新增了块级作用域.块作用域由 { } 包括,if 语句和 for 语句里面的 { } 也属于块作用域. 为什么需要块级作用域 第一种场景:内部变量会覆盖外部变量 var t ...
- ES6规范前后块级作用域与函数声明的缠缠绵绵
今天我们就以上面的这个例子来说一下,块级作用域与函数声明在ES6前后的纠葛,当然在ES6之前是没有块级作用域的,但为了与ES6统一,使文章更简明,所以把这对'{}'统一称为块级作用域. 开正题之前,还 ...
- java区块作用域_ES6-let、const和块级作用域
1.介绍 总的来说,ES6是在ES2015的基础上改变了一些书写方式,开放了更多API,这样做的目的最终还是为了贴合实际开发的需要.如果说一门编程语言的诞生是天才的构思和实现,那它的发展无疑就是不断填 ...
- let、const和var的区别(涉及块级作用域)
let .const和var的区别 let.const.var在js中都是用于声明变量的,在没有进行ES6的学习前,我基本只会使用到var关键字进行变量的声明,但在了解了ES6之后就涉及到了块级作用域 ...
- c语言块级作用域_块级作用域问题ES5 ES6
ES5: 1. 没有块级作用域 在其他类C语言中,由花括号封闭的代码块都有自己的作用域(如果用ECMAScript的话来说,就是它们自己的执行环境), 所以支持根据条件来定义变量. if(true) ...
- es6 ie不兼容 函数_ES6:什么是块级作用域?
在 ES5 只有全局作用域和函数作用域,没有块级作用域,这带来很多不合理的场景. 我们先来看一下下面这种情况:内层变量可能会覆盖外层变量. var txt = '外层变量-->你好呀';func ...
- ES6中块级作用域下的函数声明
背景 因为ES5的时候没有块级作用域,所以ES5规定不能再if这样的块中声明函数,但是为了兼容各大浏览器并没有严格遵守这条规定. ES6的时候引入了块级作用域,规定在块级作用域中声明函数就相当于使用l ...
最新文章
- pandas基于时序数据计算模型预测推理需要的统计数据(累计时间、长度变化、变化率、方差、均值、最大、最小等):范围内的统计量、变化率、获得数据集最后的几条数据的统计量、变化率、获得范围内的统计量
- python 离线下载和安装第三方库 .whl wheel 文件
- Xcode bug: imageNamed:方法返回nil
- 快速排序 python菜鸟教程-1.6 快速排序
- PowerShell: 详解Windows10常用的PowerShell高级任务
- 可能用得上的jquery 插件
- 对于mysql的用户权限管理
- Docker镜像常用命令(三)
- PHP:同时发送多个异步ajax请求,但数据却是按同步顺序返回
- 揭秘淘宝平台广告策略,拆解最佳投放实践
- 读《从优秀到卓越》乱摘
- python中float和double有什么区别_关于C++:float和double的区别是什么?
- java基础面经--下
- 软件评测师题库--操作系统基础知识
- 在有n个学生的成绩表里,每条信息由姓名与分数组成,要求:1按分数高低次序,输出每个学生的名字,分数相同的为同一名次,2按名次输出每个学生的姓名与分数。
- 利用FME计算椭球面积
- 01 【nodejs简介】
- 相机溯源之传统方法(PRNU提取)
- KS值和GINI系数
- 简单制作《坦克大战》
热门文章
- pads元件类型如何修改_pads logic元件库修改了,怎样更新到原理图
- maven打包忽略注解_maven打包后pom.properties中的注释问题-阿里云开发者社区
- linux eclipse stm32,在ubuntu下利用eclipse搭建stm32开发环境和st-link调试
- php 保护连接字符串,PHP OOP更新扩展类__construct上的受保护字符串
- kewail node 短信_Node.js代码示例_Node.js短信短信 | 微米-中国领先的短信彩信接口平台服务商...
- python元组添加元素_2分钟学会Python的元组使用
- MongoDB模糊查询-查询某月的数据
- 12-1 定位(相对,绝对,固定)
- hdu 2034 - 集合操作
- ASP.NET Callback 回调实用讲解