ES6新增了声明变量的命令let,let与var不同的是let声明的作用域是块级作用域。下面是let的几种使用场景。 1、let常见使用场景 以往写for循环经常有这样的代码:for(var i=0;i<num;i++) 这种情况下声明的变量i的作用域其实函数作用域,相当于 现在有了let可以这样写 ...
分类:
其他好文 时间:
2017-03-25 17:38:50
阅读次数:
169
ES6新特性在最新版谷歌浏览器上基本都能跑通,不需要什么babel就能测试了 参照文档:ES6标准入门;精选了部分重要特性 (一)let与块级作用域,const (二)解构赋值 (三)String扩展 (四)Number扩展 (五)Array扩展 (六)Function扩展 (七)Object扩展 ...
分类:
其他好文 时间:
2017-03-22 20:17:36
阅读次数:
205
JavaScript的作用域一直以来是前端开发中比较难以理解的知识点,对于JavaScript的作用域主要记住几句话,走遍天下都不怕... 一、“JavaScript中无块级作用域” 在Java或C#中存在块级作用域,即:大括号也是一个作用域。 public static void main () ...
分类:
Web程序 时间:
2017-03-21 15:31:12
阅读次数:
255
JS:客户端(浏览器)脚本语言 弱类型 基于原型 事件驱动 不需要编译(直接运行) JS的作用:表单验证,减轻服务端的压力 添加页面动画效果 动态更改页面内容 Ajax网络请求 (一)常见的对话框 alert()对话框:该方法是window对象的方法,在浏览器中弹出一个对话框(该方法没有返回值) p ...
分类:
编程语言 时间:
2017-03-19 21:56:47
阅读次数:
238
块级作用域 (1)let 取代 var ES6提出了两个新的声明变量的命令:let和const。其中,let完全可以取代var,因为两者语义相同,而且let没有副作用。 上面代码如果用var替代let,实际上就声明了两个全局变量,这显然不是本意。变量应该只在其声明的代码块内有效,var命令做不到这一 ...
分类:
其他好文 时间:
2017-03-15 12:43:19
阅读次数:
276
你运行一下代码会发现,无论你点击哪个列表,控制台都是输出10。这是因为var声明的变量是函数作用域的,而不是块级作用域的。也就是说,for循环10次,每次都是改变同一个i,所以它的值会从0一直加到10。还有个问题是闭包导致的,闭包保存的是外部变量的引用,而不是值。也就是说,循环10次监听器创建了10 ...
分类:
其他好文 时间:
2017-03-09 21:45:34
阅读次数:
256
JS没有块级作用域 js没有块级作用域,这个概念容易导致误解,这里就区分下几个情况,大家好好参考下: 我们知道,在其他类C的语言中,由花挂号封闭的代码块都有自己的作用域。但是在JS中,却没有块级作用域: 这个代码执行之后,在if语句定义的变量,在if语句外可以访问的到。在if语句中的变量声明会将变量 ...
分类:
其他好文 时间:
2017-03-04 12:44:42
阅读次数:
137
一. 声明变量let和const 1. let的特点: (1)不存在变量提升 (2)暂存性死区:let声明的变量被绑定到该区域,不再受外部影响。 (3)同一个作用域中,不允许重复声明 2. 块级作用域(使用let声明变量) (1)以前只有全局作用域和函数作用域,es6中一个代码块就是一个作用域{} ...
分类:
其他好文 时间:
2017-03-04 00:06:14
阅读次数:
269
由于 ECMAScript 中不存在块级作用域,因此在循环内部定义的变量也可以在外部访问到 for-in语句for-in 语句是一种精准的迭代语句,可以用来枚举对象的属性。以下是 for-in 语句的语法:for (property in expression) statement下面是一个示例:f ...
分类:
编程语言 时间:
2017-03-02 21:38:04
阅读次数:
141
摘自:http://www.cnblogs.com/wangfupeng1988/p/3991151.html;作者:王福朋; 提到作用域,有一句话大家(有js开发经验者)可能比较熟悉:“javascript没有块级作用域”。所谓“块”,就是大括号“{}”中间的语句。例如if语句: 再比如for语句 ...
分类:
编程语言 时间:
2017-02-28 18:57:39
阅读次数:
171