关于ES6 块级作用域 任何一对花括号({})中的语句集都属于一个块,在块中声明的变量在代码块外都是不可访问的,称之为块级作用域,ES5以前没有块级作用域 let let 是ES6新增的声明变量的一种方法,与 var 最明显的区别是 不存在变量提升 产生新的作用域(块级作用域) 在一个作用域中 不允 ...
分类:
其他好文 时间:
2018-02-05 17:05:19
阅读次数:
189
先看看一个简单的代码 再看一段代码: 那么铺垫完了,继续coding 来来来… 继续蜜汁尴尬, 再来: 1.变量提升 就是把变量提升提到函数的top的地方。同时需要注意的是变量提升只是提升变量的声明,并不会把赋值也提升上来。比如: 实际上它是这样子的: 那么现在我们分析下刚才出现很尴尬的结果 其实, ...
分类:
Web程序 时间:
2018-02-04 22:55:30
阅读次数:
436
1.JavaScript 变量提升 JavaScript 中,函数及变量的声明都将被提升到函数的最顶部。 JavaScript 中,变量可以在使用后声明,也就是变量可以先使用再声明。 以下两个实例将获得相同的结果: 要理解以上实例就需要理解 "hoisting(变量提升)"。 变量提升:函数声明和变 ...
分类:
编程语言 时间:
2018-02-04 22:41:26
阅读次数:
218
JavaScript声明过的变量提升往往会影响到我们对变量的正常获取,所以特写此文,以便以后翻阅。 什么是变量提升 js中定义变量有两种情况:(注意在方法外不加var是不能定义变量的,出现xx is not defined) 1. 都加var,在方法内则是局部变量,在方法外则是全局变量。 2. 在方 ...
分类:
编程语言 时间:
2018-02-04 18:09:41
阅读次数:
185
js方法调用的四种模式 1、方法调用模式 2、 函数调用模式 3、构造器调用模式 4、call 和 apply调用模式 变量提升:函数执行之前,会先将函数中所有的变量,挪到最前面去声明。 函数名提升: script中脚本,在执行之前,会先把脚本中的所有的函数先进行编译解析,然后执行普通的js代码。 ...
分类:
Web程序 时间:
2018-02-03 00:34:08
阅读次数:
192
题目 1.说一下对变量提升的理解 2.说明this几种不同的使用场景 3.创建10个<a>标签,点击时弹出对应序号 4.如何理解作用域 5.实际开发中闭包的应用 执行上下文 范围:一段<script>或者一个函数 或者eval代码 全局:变量定义、函数声明 (提前拿出来) 针对一段<script> ...
分类:
其他好文 时间:
2018-02-02 15:39:38
阅读次数:
173
ES6 新增了let命令,用来声明变量,但是所声明的变量,只在let命令所在的代码块内有效。代码块是{ }所包围的部分,即块级作用域 let有以下几个特性 不存在变量提升,即在声明之前使用此变量会报错 let不允许在相同作用域内,重复声明同一个变量。 const const声明一个只读的常量(具备l ...
分类:
其他好文 时间:
2018-01-27 17:02:21
阅读次数:
184
let和const 1.let只在它的代码块中才有效果。 2.不存在变量提升 3.for循环单独输出,并且for循环设置变量是父作用域,代码块里面是子作用域,两个是不关联的。 4.暂时性死区 简单来说就是只要在一个代码块内,在声明let变量前就使用这个变量,就会报错, 5.不允许重复声明 6.块级作 ...
分类:
其他好文 时间:
2018-01-27 11:33:22
阅读次数:
123
一、let命令 使用的注意事项: 1、es6新增了let命令,它的用法和var 差不多,但是它声明的变量只在let命令所在的代码块有效 2、不存在变量提升,所以变量要声明后再使用,不然会报错 3、不允许在相同的作用域中重复声明同一个变量,所以也不能在函数里重新声明参数 4、let为js新增了块级作用 ...
分类:
其他好文 时间:
2018-01-27 00:32:31
阅读次数:
148
一、常量 不允许重复定义 二 let使用 普通变量(var 定义的): 这叫做变量提升:先使用变量,然后在定义变量 相当于 let定义的(Es6新增) 不存在变量提升 let是一个块级作用域的变量: 结果:200,100 var 定义的话 结果:200,200 结果:20 三,js基本数据类型 结果 ...
分类:
其他好文 时间:
2018-01-26 22:46:48
阅读次数:
178