随笔分类 -  ECMAScript6.0

摘要:语法的修改 在ES6之前定义正则有两种方式 var regex = new RegExp('xyz', 'i'); // 等价于 var regex = /xyz/i; 此时定义正则有了新的改变 ES5不允许此时使用第二个参数,添加修饰符,否则会报错,但是ES6可以了,下面的代码不会报错 var r 阅读全文
posted @ 2021-10-26 15:54 keyeking 阅读(60) 评论(0) 推荐(0)
摘要:二进制和八进制表示法 ES6提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示。 0b111110111 503 // true 0o767 503 // true 从 ES5 开始,在严格模式之中,八进制就不再允许使用前缀0表示,ES6 进一步明确,要使用前缀0o表示 阅读全文
posted @ 2021-10-26 15:19 keyeking 阅读(54) 评论(0) 推荐(0)
摘要:概述 ES5的对象属性名都是字符串,这容易造成属性名的冲突。比如,你使用了一个他人提供的对象,但又想为这个对象添加新的方法(mixin模式),新方法的名字就有可能与现有方法产生冲突。如果有一种机制,保证每个属性的名字都是独一无二的就好了,这样就从根本上防止属性名的冲突。这就是ES6引入Symbol的 阅读全文
posted @ 2021-10-26 14:21 keyeking 阅读(722) 评论(0) 推荐(0)
摘要:概述 Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API。Reflect对象的设计目的有这样几个。 (1) 将Object对象的一些明显属于语言内部的方法(比如Object.defineProperty),放到Reflect对象上。现阶段,某些方法同时在Object 阅读全文
posted @ 2021-10-26 11:21 keyeking 阅读(116) 评论(0) 推荐(0)
摘要:概述 Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”(meta programming),即对编程语言进行编程。 Proxy 可以理解成,在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和 阅读全文
posted @ 2021-10-26 11:15 keyeking 阅读(254) 评论(0) 推荐(0)
摘要:WeakMap结构与Map结构基本类似,唯一的区别是它只接受对象作为键名(null除外),不接受其他类型的值作为键名,而且键名所指向的对象,不计入垃圾回收机制 let map = new WeakMap(); let obj = {} map.set(obj,"200"); console.log( 阅读全文
posted @ 2021-10-26 10:01 keyeking 阅读(75) 评论(0) 推荐(0)
摘要:Set类似于数组,Map类似于对象。 为什么要有Map,使用对象的时候,key(键)只能是基本类型值(字面量类型,多数是字符串),Map的key可以是任意类型 基本使用 var mapObj = new Map(); mapObj.set("a",1) console.log(mapObj); 我们 阅读全文
posted @ 2021-10-26 09:58 keyeking 阅读(110) 评论(0) 推荐(0)
摘要:WeakSet的使用 Set和WeakSet的区别是set内部建议存放数组,WeakSet内部建议存放引用类型(数组和对象) WeakSet和Set的区别: WeakSet中只能存放对象类型,不能存放基本类型 WeakSet对元素的引用第弱引用,如果没有其他引用对某个对象进行引用,那么GC可以对该对 阅读全文
posted @ 2021-10-26 09:29 keyeking 阅读(229) 评论(0) 推荐(0)
摘要:Set的基本使用 ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。 返回的结果是一个set集合,和数组对象都不一样,是一个新的数据集合 设置初始值的方法有两种,第一中是通过add()方法进行设置的,第二种就是初始化的时候内部设置数组 let set = new 阅读全文
posted @ 2021-10-26 09:20 keyeking 阅读(290) 评论(0) 推荐(0)
摘要:Fetch API 提供了一个 JavaScript 接口,用于访问和操纵 HTTP 管道的一些具体部分,例如请求和响应。它还提供了一个全局 fetch() 方法,该方法提供了一种简单,合理的方式来跨网络异步获取资源。 这种功能以前是使用 XMLHttpRequest 实现的。Fetch 提供了一个 阅读全文
posted @ 2021-10-25 22:04 keyeking 阅读(1484) 评论(0) 推荐(0)
摘要:async 函数是什么?一句话,它就是 Generator 函数的语法糖,使得异步操作变得更加方便。 基本使用 const fs = require("fs"); const readFile = function(url){ return new Promise((resolve,reject)= 阅读全文
posted @ 2021-10-25 21:43 keyeking 阅读(84) 评论(0) 推荐(0)
摘要:基本概念 Generator 函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同。 Generator 函数有多种理解角度。从语法上,首先可以把它理解成,Generator 函数是一个状态机,封装了多个内部状态。 执行 Generator 函数会返回一个遍历器对象,也就是说,Ge 阅读全文
posted @ 2021-10-25 20:29 keyeking 阅读(215) 评论(0) 推荐(0)
摘要:Iterator(遍历器)的概念 JavaScript原有的表示“集合”的数据结构,主要是数组(Array)和对象(Object),ES6又添加了Map和Set。这样就有了四种数据集合,用户还可以组合使用它们,定义自己的数据结构,比如数组的成员是Map,Map的成员是对象。这样就需要一种统一的接口机 阅读全文
posted @ 2021-10-25 18:18 keyeking 阅读(395) 评论(0) 推荐(0)
摘要:Promise 的含义 Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区最早提出和实现,ES6将其写进了语言标准,统一了用法,原生提供了Promise对象。 所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异 阅读全文
posted @ 2021-10-25 17:03 keyeking 阅读(392) 评论(0) 推荐(0)
摘要:bael是一个nodejs的工作流工具,babel工具的作用就是将es的新语法翻译为老的语法 babel的官网:https://www.babeljs.cn/ Babel 是一个 JavaScript 编译器 Babel 是一个工具链,主要用于将采用 ECMAScript 2015+ 语法编写的代码 阅读全文
posted @ 2021-10-24 22:15 keyeking 阅读(706) 评论(0) 推荐(0)
摘要:定义“类” 之前使用new function来定义一个函数的类型,现在在es6中可以使用class关键字来定义一个函数类 先来看普通函数定义的类 function People(name,age,sex){ this.name = name; this.age = age; this.sex = s 阅读全文
posted @ 2021-10-24 18:29 keyeking 阅读(67) 评论(0) 推荐(0)
摘要:箭头函数有几个使用注意点: 函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。 不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误。 不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用rest参数代替。 不可以使用yield命令,因此箭 阅读全文
posted @ 2021-10-24 17:03 keyeking 阅读(513) 评论(0) 推荐(0)
摘要:箭头函数 下面的例子就是一个的箭头函数,省略了function关键字,加了=>运算符 注意:=>是一个运算符,中间不能有空格 如果函数内部只有一行语句,可以省略{}和return let sum = (a,b) => a + b; console.log(sum(2,3)) 如果内部不止一行语句要加 阅读全文
posted @ 2021-10-24 16:51 keyeking 阅读(85) 评论(0) 推荐(0)
摘要:对象可以省略v 对象的表达是k:v,当对象的k和v相同的时候,可以省略v var a = 1; var b = 2; var c = 3; var obj = { a: a, b: b, c: c } //等价于 var obj={ a, b, c } 所以,kv一致省略v 例子 注意的是省略v的时 阅读全文
posted @ 2021-10-24 14:38 keyeking 阅读(55) 评论(0) 推荐(0)
摘要:数组的拓展方法返回的都是一个新函数 forEach方法 之前的遍历都是for(var i = 0; i < 100; i++)样式的,ES6提供了forEach数组遍历 参数一共有两个,第一个item表示的是对应的数组的每一项值,index表示对应值的下标 map方法 map方法表示的是映射,返回的 阅读全文
posted @ 2021-10-24 14:04 keyeking 阅读(57) 评论(0) 推荐(0)