ES6学习笔记-let与const

背景 ES6 即 ECMAScript 6.0 的简称,是 JavaScript 的下一代标准,在2015年6月正式发布了。 ECMAScript 和 JavaScript 的关系 ECMASCript 和 JavaScript 的关系,在这里简单的概括下。 NetScape 先创造了 JavaScript,然后,为了让这种语言成为国际标准,所以决定将其提交给 ECMA (国际标准化组织)。ECMA 在次年便发布了 ECMAScript 的 1.0 版。标准是针对 JAVAScript 语言制定的,但因为 JAVA 是 Sun 公司的商标,根据授权协议,只有 NetScape 公司可以使用 JAVAScript 这个名字,而且也为了让大家知道,这门语言的制定者是 ECMA,不是 NetScape。 因此,ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的一种实现。由于 JavaScript 的历史原因和市场原因,现实中我们只用 ECMAScript 称呼标准,而使用 JavaScript 来称呼这个语言。 ES6 在 ECMASCript 诞生后的很长一段时间里, 其并没有多大的变化。ES5 在 2011 年发布之后也没有得到广泛的支持,很多开发者都还是用 ES3 在写页面。这期间很多浏览器厂商都在争相进行自己的语言发展,这也导致了很多的兼容问题。这期间诞生了 jQuery,一个 JavaScript 库, 简化了 JavaScript 编程,同时也帮助开发者解决很多跨浏览器的兼容问题。 而 ECMAScript 本身,2012那年开始,大家开始推动淘汰旧版本IE的支持,于是,大家可以开始用 ES5 来写代码了。同时,一个新的标准规范也开始启动,那个负责制定 ECMAScript 规范草案的组织,委员会 TC39,在 ES6 正式发布之前,将其改名为 ECMAScript 2015,在2015年6月发布。委员会同时也决定在每年的六月发布新的标准。在写这篇文章的时候,已经是2017年,ES 2017 在今年六月份也如约发布了。...

October 10, 2017 · 2 min · vdorchan

ES6学习笔记-变量的解构赋值

ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为 解构(Destructuring) ES6 之前, 声明多个变量我们可以这样子 var a = 1, b = 2, c = 3 而 ES6 增加了解构赋值, 赋值变得更加的高大上了 var [a, b, c] = [1, 2, 3] 1. 数组的解构赋值 下面代码表示,可以从数组中提取值,按照对应位置,对变量赋值。 本质上,这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值 let [a, b, c] = [1, 2, 3] // 解构不成功的情况下,该变量的值为 undefined let [a, b, ...c] = [1] // a: 1, b: undefined, c: [] // 不完全解构,也可以成功 let [a, [b], c] = [1, [2, 3], 4] // a: 4, b: 2, c: 4 // 等号的右边不是数组( 不是可遍历的结构 )的话, 会报错 let [foo] = 1 // 对于 Set 结构,也可以使用数组的解构赋值。 let [x, y, z] = new Set(['a', 'b', 'c']) 结解构赋值允许指定默认值...

October 10, 2017 · 4 min · vdorchan

1. 两数之和 哈希值存索引,减小时间复杂度 217. 存在重复元素 哈希表 594. 最长和谐子序列 哈希表,注意负数 128. 最长连续序列 哈希方便寻找,先确定是左边界值,才开始找最长 283. 移动零 整体先赋值非0,再赋值0 双指针 566. 重塑矩阵 240. 搜索二维矩阵 II 右上角/左下角开始搜索

1 min · vdorchan