数组去重在前端工作中是必不可少的,接下来我就总结了个人常用的几种方式 一. ES5环境书写 1. 传统方式:效率不是是很高 2.通过模拟map的hash存储方式:效率优于1 3.通过indexOf判断数组元素第一次出现的位置是否为当前位置来实现:效率是2的两倍,推荐 二. ES6环境 通过Set数据 ...
分类:
编程语言 时间:
2017-09-25 13:27:56
阅读次数:
185
this 关键字是 Javascript 中很特别的一个关键字,被自动定义在所有函数的作用域中。this提供了一种更优雅的方式隐式“传递”一个对象的引用。今天就来说说 this 的指向问题。 this 是在运行时,也就是说函数被调用时进行绑定,而不是在编写时进行绑定,它的上下文取决于函数调用时的各种 ...
分类:
Web程序 时间:
2017-09-24 20:28:09
阅读次数:
176
接着上文[js高手之路] es6系列教程 - 迭代器与生成器详解继续. 在es6中引入了一个新的循环结构for ....of, 主要是用来循环可迭代的对象,那么什么是可迭代的对象呢? 可迭代的对象一般都有Symbol.iterator属性,你可以在控制台中用console.dir打印数组,Map,S ...
分类:
Web程序 时间:
2017-09-24 19:28:35
阅读次数:
307
什么是迭代器? 迭代器是一种特殊对象,这种对象具有以下特点: 1,所有对象都有一个next方法 2,每次调用next方法,都会返回一个对象,该对象包含两个属性,一个是value, 表示下一个将要返回的值。另一个是done,他是一个布尔值,用来表示该迭代器是否还有数据可以返回. 3,迭代器还会保存一个 ...
分类:
Web程序 时间:
2017-09-24 16:20:14
阅读次数:
200
ECMAScript 6中的Map类型是一种存储着许多键值对的有序列表。键值对支持所有的数据类型. 键 0 和 ‘0’会被当做两个不同的键,不会发生强制类型转换. 如何使用Map? let map = new Map(); 常用方法: set( 键,值 ): 添加新的键值对元素 get( 键 ): ...
import export 这两个家伙对应的就是es6自己的 module功能。 我们之前写的Javascript一直都没有模块化的体系,无法将一个庞大的js工程拆分成一个个功能相对独立但相互依赖的小工程,再用一种简单的方法把这些小工程连接在一起。 这有可能导致两个问题: 一方面js代码变得很臃肿, ...
分类:
其他好文 时间:
2017-09-23 23:28:00
阅读次数:
250
Iterator( 遍历器) 的概念: JavaScript 原有的表示“ 集合” 的数据结构, 主要是数组( Array) 和对象( Object), ES6 又添加了 Map 和 Set。 这样就有了四种数据集合, 用户还可以组合使用它们, 定义自己的数据结构, 比如数组的成员是 Map, Ma ...
分类:
Web程序 时间:
2017-09-23 16:19:29
阅读次数:
172
default 参数默认值 在实际开发 有时需要给一些参数默认值。 在ES6之前一般都这么处理参数默认值 而现在可以这么做 rest参数 rest参数类似C#中的params参数,以数组方式接收任意数量参数。 不论参数类型是什么均已数组方式接收。rest参数用 ... 作前缀来修饰参数。 par接收 ...
分类:
其他好文 时间:
2017-09-23 14:33:59
阅读次数:
157
原文 https://thewebjuice.com/es6-arrows/ 1 使用es6箭头定义匿名函数 es5 2 单个参数和多个参数 es5 3定义闭包 es5 4 Literal Syntax es5 ...
分类:
编程语言 时间:
2017-09-23 10:47:24
阅读次数:
174
关于promise我在之前的文章已经应用过好几次,如[js高手之路]Node.js+jade+express+mongodb+mongoose+promise实现todolist,本文就来讲解下promise的常见用法. 为什么会有promise,他的作用是什么? promise主要是为了解决js中 ...
分类:
Web程序 时间:
2017-09-23 00:11:05
阅读次数:
275