ES6
文章平均质量分 95
es6相关
wflynn
研究代码中...将随缘更新
展开
-
对象的解构赋值
对象的解构赋值对象解构的基本用法:let {a, b} = {a: 'aaaa', b: 'bbbb'} // a='aaaa' b='bbbb'let obj = {d: 'aaaa', e: {f: 'bbbb'}}let {d, e:{f}} = obj // 嵌套解构 d='aaaa' f='bbbb'let g;(g = {g: 'aaaa'}) // 已声明变量解构 ...原创 2019-12-06 15:01:20 · 2701 阅读 · 0 评论 -
解构赋值用途与解构赋值圆括号问题
圆括号问题对于编译器来说,一个式子到底是模式,还是表达式,没有办法从一开始就知道,必须解析到(或解析不到)等号才能知道。 由此带来的问题是,如果模式中出现圆括号怎么处理。ES6 的规则是,只要有可能导致解构的歧义,就不得使用圆括号。 但是,这条规则实际上不那么容易辨别,处理起来相当麻烦。因此,建议只要有可能,就不要在模式中放置圆括号。不能使用圆括号的情况以下三种解构赋值不得使用圆括号...原创 2019-12-06 15:09:31 · 731 阅读 · 0 评论 -
ES6面试点-模板字符串
传统的 JavaScript 语言,输出模板通常是这样写的(下面使用了 jQuery 的方法)。$('#result').append( 'There are <b>' + basket.count + '</b> ' + 'items in your basket, ' + '<em>' + basket.onSale + '</e...原创 2019-12-06 16:06:55 · 216 阅读 · 0 评论 -
ES6的Map常用用法
Map与数组的关系var kvArray = [["key1", "value1"], ["key2", "value2"]];// 使用常规的Map构造函数可以将一个二维键值对数组转换成一个Map对象var myMap = new Map(kvArray);myMap.get("key1"); // 返回值为 "value1"// 使用Array.from函数可以将一个Ma...原创 2019-12-09 14:19:35 · 415 阅读 · 0 评论 -
WeakSet
WeakSet 含义WeakSet 结构与 Set 类似,也是不重复的值的集合。但是,它与 Set 有两个区别。首先,WeakSet 的成员只能是对象,而不能是其他类型的值。const ws = new WeakSet();ws.add(1)// TypeError: Invalid value used in weak setws.add(Symbol())// TypeE...原创 2019-12-09 14:22:09 · 151 阅读 · 0 评论 -
WeakMap
什么是WeakMapWeakMap结构与Map结构类似,也是用于生成键值对的集合。// WeakMap 可以使用 set 方法添加成员const wm1 = new WeakMap();const key = {foo: 1};wm1.set(key, 2);wm1.get(key) // 2// WeakMap 也可以接受一个数组,// 作为构造函数的参数const k...原创 2019-12-09 14:33:06 · 172 阅读 · 0 评论 -
class的继承
类的继承class ZxxSubFn extends ZxxFn { constructor (name, age, salary) { super(name, age); // 调用父类的构造方法 this.salary = salary } // 父类的方法重写 showName () { console.l...原创 2019-12-09 15:15:02 · 155 阅读 · 0 评论 -
箭头函数
基本用法ES6 允许使用“箭头”(=>)定义函数。var f = v => v;// 等同于var f = function (v) { return v;};如果箭头函数不需要参数或需要多个参数,就使用一个圆括号代表参数部分。var f = () => 5;// 等同于var f = function () { return 5 };v...原创 2019-12-16 15:24:55 · 439 阅读 · 0 评论 -
JS实现继承的方法
方法一:借助callfunction Parent (sex) { this.name = 'zxx' this.sex = sex}Parent.prototype.test = function () { console.log('我是函数')}Parent.prototype.why = 'not'function Child (sex) { ...原创 2019-11-27 10:26:44 · 355 阅读 · 0 评论 -
ES6中export、export default、import的理解
前言ES6标准发布后,module成为标准,标准使用是以export指令导出接口,以import引入模块,但是在我们一贯的node模块中,我们依然采用的是CommonJS规范,使用require引入模块,使用module.exports导出接口。一个模块就是一个独立的文件。该文件内部的所有变量,外部无法获取。如果你希望外部能够读取模块内部的某个变量,就必须使用export关键字输出该变量。...原创 2019-10-22 09:33:07 · 713 阅读 · 0 评论 -
ES6之Set对象详解
Set是什么是ES6提供的一种新的数据结构,类似于数组,但是成员的值都是唯一的,没有重复的值。 Set 本身是一个构造函数,用来生成 Set 数据结构。 Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。 Set 中的元素只会出现一次,即 Set 中的元素是唯一的。 另外,NaN 和 undefined 都可以被存储在 Set 中,NaN 之间被视为相同的值(尽管 N...原创 2019-09-25 14:45:35 · 1593 阅读 · 0 评论 -
ES6的Map用法详解
为什么需要MapJavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键。这给它的使用带来了很大的限制。const data = {};const element = document.getElementById('myDiv');data[element] = 'metadata';data['[object HTML...原创 2019-09-26 10:03:31 · 5368 阅读 · 2 评论 -
数组的解构赋值
解构赋值:通过解构赋值,可以将属性或值从对象或数组中取出,赋值给其他变量。 简单理解就是等号的左边和右边相等。主要分为对象的解构和数组的解构。在没有解构赋值的时候,我们赋值是这样的let arr = [0, 1, 2]let a = arr[0]let b = arr[1]let c = arr[2]===// 解构写法let [a, b, c] = [0, 1, ...原创 2019-10-21 12:55:24 · 874 阅读 · 0 评论 -
ES6扩展运算符三个点(...)详解
对象的扩展运算符:对象中的扩展运算符(...)用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中let zxx = {a: 1, b: 2};let zxxs = {...zxx};console.log(zxxs) // {a: 1, b: 2}等价于let zxx = {a: 1, b: 2};let zxxs = Object.assign({}, zxx)...原创 2019-10-17 16:14:56 · 509 阅读 · 0 评论 -
es6箭头函数详解
// 普通函数let fun = function () { console.log('原始函数')}fun()// 没有形参的时候let fun1 = () => console.log('我是箭头函数')fun1()// 只有一个形参的时候,可以省略小括号let fun2 = a => console.log(a)fun2('我是a')//...原创 2019-10-16 16:27:49 · 205 阅读 · 0 评论 -
ES6的class详解
class声明创建一个基于原型继承的具有给定名称的新类。和类表达式一样,类声明体在严格模式下运行。构造函数是可选的。类声明不可以提升(这与函数声明不同)一个普通的构造函数function ZxxFn (name, age) { this.name = name this.age = age}ZxxFn.prototype.showName = function...原创 2019-09-26 15:43:07 · 275 阅读 · 0 评论 -
ES6 块级作用域详解
什么是块级作用域ES6 中新增了块级作用域。块作用域由 { } 包括,if语句和 for语句里面的{ }也属于块作用域。为什么需要块级作用域第一种场景:内部变量会覆盖外部变量var time = new Date()function zxx () { console.log(time) // undefined if (false) { var ...原创 2019-09-23 12:28:54 · 3599 阅读 · 0 评论 -
es6中的Let和Const详解
Let用于声明一个变量特点let 声明的变量只在自身的块级作用域有效,存在暂时性死区 不能重复声明(会报错提示已经定义) 不会预处理,不存在变量提升应用循环遍历监听 使用 let 替换 var 是趋势 主要是解决了块级作用域的需求 防止出现先使用(变量),后声明(变量)简单示例// 只在所在的代码块生效{ let a = 10; var b = 1;...原创 2019-09-24 10:31:15 · 362 阅读 · 0 评论