var a = [];for (var i = 0; i < 10; i++) { a[i] = function () { console.log(i); };}a[6](); // 10 变量i是var命令声明的,在全局范围内都有效,所以全局只有一个变量i.每一次循环, 变量i的值都会发生改变,而循环内被赋给数组a的函数内部的console.log(i), 里面的i指向的就是全局的i.也就是说,所有数组a的成员里面的i,指向的都是同一个i,导致运行时输出的是最后一轮的i的值,也就是 10.…
注:ES6的一些新属性会显示语法错误,不过不会影响效果,在Languages里面也可以调: let:用来定义变量 特点:只能在代码块里面使用,let拥有块级作用域;并且let不允许重复声明;比如: var a = 12; var a = 5; alert(a);//5; let a = 12; let a = 5; alert(a);//报错;Identifier 'a' has already been declared 代码块:{}包起来的代码,形成了一个作用域,比如if,for,while…
1. ES6的解构ES6中引入了解构赋值的操作,其作用是:将值从数组Array或属性从对象Object提取到不同的变量中 即分为两种情况:从数组Array中解构,以及从对象Object中解构 ①.从数组中解构const [a, b] = [1, 2]//a = 1, b = 2 当然这些是基本的数组解构赋值,你还可以用逗号,进行跨值解构,用扩展运算符...进行多余项的解构等等 ②.从对象中结构const {a, b} = {a: 1, a: 2}//a = 1, b = 2 这也是基本的对象结构…
主要内容: 1. 内置函数.递归函数.闭包2. 数组与切片3. map数据结构4. package介绍 5. 排序相关 1. 内置函数.递归函数.闭包 1)内置函数 (1). close:主要用来关闭channel 1). close函数是一个内建函数,用来关闭channel,这个channel要么是双向的, 要么是只写的(chan<- Type).             2). 这个方法应该只由发送者调用, 而不是接收者.             3). 当最后一个发送的值都被接收者从关闭的…
原文链接:http://dmitrysoshnikov.com/ 原文作者:Dmitry Soshnikov 译者做了少量补充.这样的的文字是译者加的,可以选择忽略. 作者微博:@Bosn 在这个简短的笔记中我们聊一聊ES6的又一特性:带默认值的函数参数.正如我们即将看到的,有些较为微妙的CASE. ES5及以下手动处理默认值 在ES6默认值特性出现前,手动处理默认值有几种方式: function log(message, level) { level = level || 'warning';…
标签: javascript es6 数组新增方法 map(可以理解为是映射,以一定规则修改数组每一项并返回全新数组) reduce(可以理解为是汇总,一堆出来一个) filter(可以理解为过滤,筛选的意思,以一定规则拿到符合的项并返回新数组) forEach(感觉和for循环是一个作用) map示例 示例代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <met…
首先说说什么是数组:数组在类型划分上归为Object,属于比较特殊的对象,数组的索引值类似于对象的key值. 数组的几个注意点: 1.数组的长度是可读属性,不可更改,数组的长度根据索引最大值. 2.数组的索引值可以是字符串等,但这个不影响数组的长度. 3.数组根据下标最大值,会自动补齐对应的其他索引值,且值为空. ES6新增了数组的一系列方法,如Array.of,Array.from,Array.find等等 数组与类数组的最大区别在于数组自身具有迭代器iterator Array.from  …
es6方法: 普通数组: 1.使用Array.from(new Set(arr)); /* * @param oldArr 带有重复项的旧数组 * @param newArr 去除重复项之后的新数组 * */ let oldArr = [1, 1, 1, 2, 3, 2, 4, 4, 4, 9, 9, 0, 0, NaN, NaN]; let newArr = Array.from(new Set(oldArr)); console.log(newArr); // [1, 2, 3, 4, 9,…
文章目录 数组的扩展(ES6) 1. 扩展运算符 2. Array.from 3. Array.of() 4. copyWithin() 5. find() 和 findIndex() 6. fill() 7. entries(), keys() 和 values() 8. includes() 9. 数组的空位 数组的扩展(ES6) 数组平时肯定是用的比较多的,今天和大家聊一下ES6对数组的扩展,理解的东西不多,主要是比较繁琐,简单整理了一下,主要是下面的几个地方. 1. 扩展运算符 扩展运算…
ES5 检测数组 let arr = [1,2,3,4] Array.isArray(arr) arr instanceof Array 转换方法 arr.toLocaleString() arr.toString() arr.valueOf() 栈方法(后进先出) arr.push(item1,item2,....,itemx); // 添加元素,返回值为数组的长度,并且原数组会发生变化 arr.pop(item1,item2,....,itemx); // 删除并返回数组的最后一个元素,原数…