
ES6
文章平均质量分 69
吴声子夜歌
个人学习记录
展开
-
ES6--Reflect
ReflectES6 中将 Object 的一些明显属于语言内部的方法移植到了 Reflect 对象上(当前某些方法会同时存在于 Object 和 Reflect 对象上),未来的新方法会只部署在 Reflect 对象上。Reflect 对象对某些方法的返回结果进行了修改,使其更合理。Reflect 对象使用函数的方式实现了 Object 的命令式操作。静态方法Reflect.get(t...原创 2019-10-18 09:35:01 · 569 阅读 · 0 评论 -
ES6--Proxy
概述Proxy 可以对目标对象的读取、函数调用等操作进行拦截,然后进行操作处理。它不直接操作对象,而是像代理模式,通过对象的代理对象进行操作,在进行这些操作时,可以添加一些需要的额外操作。基本用法Proxy:一个 Proxy 对象由两个部分组成: target 、 handler 。在通过 Proxy 构造函数生成实例对象时,需要提供这两个参数。 target 即目标对象, handler...原创 2019-10-18 09:24:27 · 586 阅读 · 0 评论 -
ES6--async函数
asyncasync 是 ES7 才有的与异步操作有关的关键字,和 Promise , Generator 有很大关联的。语法async function name([param[, param[, ... param]]]) { statements }name: 函数名称。param: 要传递给函数的参数的名称。statements: 函数体语句。返回值async 函数返...原创 2019-10-17 16:39:27 · 609 阅读 · 0 评论 -
ES6--Generator函数
概述ES6 新引入了 Generator 函数,可以通过 yield 关键字,把函数的执行流挂起,为改变执行流程提供了可能,从而为异步编程提供解决方案。Generator 函数组成Generator 有两个区分于普通函数的部分:一是在 function 后面,函数名之前有个 * ;函数内部有 yield 表达式。其中 * 用来表示函数为 Generator 函数,yield 用来定...原创 2019-10-17 16:32:44 · 509 阅读 · 0 评论 -
ES6--Promise对象
概述是异步编程的一种解决方案。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。Promise 状态状态的特点Promise 异步操作有三种状态:pending(进行中)、fulfilled(已成功)和 rejected(已失败)。除了异步操作的结果,任何其他操作都无法改变这个状态。Promise 对象只有:从 pending 变为 fulfilled 和从 pendi...原创 2019-10-17 15:56:52 · 517 阅读 · 0 评论 -
ES6--迭代器(Iterator、迭代过程、可迭代数据类型、可迭代数据结构、定义可迭代对象)
IteratorIterator 是 ES6 引入的一种新的遍历机制,迭代器有两个核心概念:迭代器是一个统一的接口,它的作用是使各种数据结构可被便捷的访问,它是通过一个键为Symbol.iterator 的方法来实现。迭代器是用于遍历数据结构元素的指针(如数据库中的游标)。迭代过程通过 Symbol.iterator 创建一个迭代器,指向当前数据结构的起始位置随后通过 next ...原创 2019-10-17 11:48:52 · 1451 阅读 · 0 评论 -
ES6--模块
概述在 ES6 前, 实现模块化使用的是 RequireJS 或者 seaJS(分别是基于 AMD 规范的模块化库, 和基于 CMD 规范的模块化库)。ES6 引入了模块化,其设计思想是在编译时就能确定模块的依赖关系,以及输入和输出的变量。ES6 的模块化分为导出(export) @与导入(import) 两个模块。特点ES6 的模块自动开启严格模式,不管你有没有在模块头部加上 use...原创 2019-10-17 11:31:17 · 439 阅读 · 0 评论 -
ES6--Class类
Class概述概述在ES6中,class (类)作为对象的模板被引入,可以通过 class 关键字定义类。class 的本质是 function。它可以看作一个语法糖,让对象原型的写法更加清晰、更像面向对象编程的语法。基础用法类定义类表达式可以为匿名或命名。// 匿名类let Example = class { constructor(a) { this....原创 2019-10-17 10:56:42 · 670 阅读 · 0 评论 -
ES--函数(默认参数、箭头函数)
函数参数的扩展默认参数基本用法function fn(name,age=17){ console.log(name+","+age);}fn("Amy",18); // Amy,18fn("Amy",""); // Amy,fn("Amy"); // Amy,17注意点:使用函数默认参数时,不允许有同名参数。// 不报错function fn(name,name...原创 2019-10-16 23:14:29 · 1001 阅读 · 0 评论 -
ES6--数组(数组创建、填充、遍历、包含、数组缓冲区、定型数组、扩展运算符)
数组创建Array.of():将参数中所有值作为元素形成数组。console.log(Array.of(1, 2, 3, 4)); // [1, 2, 3, 4] // 参数值可为不同类型console.log(Array.of(1, '2', true)); // [1, '2', true] // 参数为空时返回空数组console.log(Array.of()); // [...原创 2019-10-16 13:04:10 · 2277 阅读 · 2 评论 -
ES6--字符串(拓展的方法、模板字符串)
拓展的方法子串的识别:includes():返回布尔值,判断是否找到参数字符串。startsWith():返回布尔值,判断参数字符串是否在原字符串的头部。endsWith():返回布尔值,判断参数字符串是否在原字符串的尾部。以上三个方法都可以接受两个参数,需要搜索的字符串,和可选的搜索起始位置索引。let string = "apple,banana,orange";string...原创 2019-10-16 11:07:56 · 773 阅读 · 0 评论 -
ES6--对象
对象字面量属性的简洁表示法:ES6允许对象的属性直接写变量,这时候属性名是变量名,属性值是变量值。const age = 12;const name = "Amy";const person = {age, name};person //{age: 12, name: "Amy"}//等同于const person = {age: age, name: name}方法名也可...原创 2019-10-15 18:23:42 · 578 阅读 · 0 评论 -
ES6--Set(特殊值、类型转换、Set对象的作用)
Set对象Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。Set中的特殊值Set 对象存储的值总是唯一的,所以需要判断两个值是否恒等。有几个特殊值需要特殊对待:+0 与 -0 在存储判断唯一性的时候是恒等的,所以不重复;undefined 与 undefined 是恒等的,所以不重复;NaN 与 NaN 是不恒等的,但是在 Set 中只能存一个,不重复。let...原创 2019-10-15 16:59:51 · 848 阅读 · 0 评论 -
ES6--Map(Map与Object区别、Map的迭代、Map与Array转换、Map的克隆及合并)
Map对象Map 对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值。Maps 和 Objects 的区别一个 Object 的键只能是字符串或者 Symbols,但一个 Map 的键可以是任意值。Map 中的键值是有序的(FIFO 原则),而添加到对象中的键则不是。Map 的键值对个数可以从 size 属性获取,而 Object 的键值对个数只能手动计算。Objec...原创 2019-10-15 16:18:44 · 1422 阅读 · 1 评论 -
ES6--数值(进制、常量、最大/最小安全整数、方法、Math对象扩展)
数值表示二进制表示法新写法: 前缀 0b 或 0B 。八进制表示法新写法: 前缀 0o 或 0O 。十六进制表示法新写法: 前缀 0x 或 0X 。进制转换:console.log(0b10);//2console.log(0o10);//8console.log(0x10);//16console.log(0b11 === 3);//trueconsole.log(0o10 ...原创 2019-10-14 23:24:19 · 1489 阅读 · 0 评论 -
ES6--Symbol类型
概述ES6 引入了一种新的原始数据类型 Symbol ,表示独一无二的值,最大的用法是用来定义对象的唯一属性名。ES6 数据类型除了 Number 、 String 、 Boolean 、 Objec t、 null 和 undefined ,还新增了 Symbol 。基本用法Symbol 函数栈不能用 new 命令,因为 Symbol 是原始数据类型,不是对象。可以接受一个字符串作为参数...原创 2019-10-14 22:34:59 · 502 阅读 · 0 评论 -
ES6--解构赋值(destructuring assignment)
解构赋值是对赋值运算符的扩展。他是一种针对数组或者对象进行模式匹配,然后对其中的变量进行赋值。在代码书写上简洁且易读,语义更加清晰明了;也方便了复杂对象中数据字段获取。解构模型解构的源,解构赋值表达式的右边部分。解构的目标,解构赋值表达式的左边部分。数组基本:let [a, b, c] = [10, 20, 30];console.log(a, b, c);//10 20 30...原创 2019-10-13 23:30:59 · 843 阅读 · 0 评论 -
ES6--let与const
let命令let声明的变量只在let命令所在的代码块内有效。而var声明的变量是在全局范围内有效。if(true){ var i = 0;}console.log(i);//i=0if(true){ let i = 0;}console.log(i);//变量i未找到let只能声明一次,而var可以声明多次//重复定义问题var i = 0;switch(...原创 2019-10-13 22:54:17 · 573 阅读 · 0 评论