![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ES标准
润清
这个作者很懒,什么都没留下…
展开
-
ES2019 重点总结
1.Array.prototype.flat()Array.prototype.flat()用于将嵌套的数组“拉平”,变成一维的数组。该方法返回一个新数组,对原数据没有影响。flat(depth),flat()默认只会“拉平”一层,如果想要“拉平”多层的嵌套数组,可以将flat()方法的参数写成一个整数,表示想要拉平的层数,depth默认为1。const arr1 = [1, 2, [3, 4]];arr1.flat();// [1, 2, 3, 4]const arr2 = [1, 2, [3原创 2021-03-21 18:23:28 · 219 阅读 · 0 评论 -
ES2018 重点总结
1.for await of(1)for await of和for…of的对比及使用for…of循环用于遍历同步的 Iterator 接口,for await…of循环用于遍历异步的 Iterator 接口。function Gen (time) { return new Promise(function (resolve, reject) { setTimeout(function () { resolve(time) }, time) })}// for原创 2021-03-20 18:06:47 · 248 阅读 · 0 评论 -
ES2017重点总结
1.async/awaitasync 就是 Generator 函数的语法糖。async函数将 Generator 函数的星号(*)替换成async,将yield替换成await。Generator 函数的返回值是 Iterator 对象,而async函数的返回值是 Promise 对象。(async 函数显式返回的不是 Promise 的话,会自动包装成 Promise 对象)await 不可以脱离 async 单独使用。一旦遇到await,会等到异步操作完成,再接着执行函数体内后面的语句。a原创 2021-03-18 00:50:32 · 566 阅读 · 0 评论 -
ES2016重点总结
1.Array.prototype.includesbefore:使用Array.prototype.indexOf()来确定数组中是否含有某个元素,因为该方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。const beasts = ['ant', 'bison', 'camel', 'duck', 'bison'];console.log(beasts.indexOf('bison'));// expected output: 1// start from ind原创 2021-03-16 23:44:06 · 147 阅读 · 0 评论 -
js之导入导出
导出表达式式导出// 导出变量/常量export const name = 'hello'export let addr = 'BeiJing City'export var list = [1, 2 , 3]// 导出函数export function say (content){ console.log(content);}export function run (){ console.log('run')}// 导出对象export ({ code: 0, me原创 2021-03-14 23:15:28 · 365 阅读 · 0 评论 -
js之Iterator
迭代器的应用数据处理:汇总下面对象中的数字let a = { b: { c: [ '1', '2', '3' ], d: [ '4', '5', '6', '7' ], e: [ '8', '9',原创 2021-03-14 22:11:16 · 416 阅读 · 0 评论 -
js之generator
基本使用Generator 函数是 ES6 提供的一种异步编程解决方案.生成器函数在执行时能暂停,后面又能从暂停处继续执行。Generator 函数function关键字与函数名之间有一个星号;函数体内部使用yield表达式,定义不同的内部状态(yield在英语里的意思就是“产出”)function* name([param[, param[, ... param]]]) { statements }调用一个生成器函数并不会马上执行它里面的语句,而是返回一个这个生成器的 迭代器 ( iterator原创 2021-03-14 10:36:20 · 614 阅读 · 0 评论 -
js之proxy
Proxy 对象用于创建一个对象的代理,从而实现基本操作的拦截和自定义(如属性查找、赋值、枚举、函数调用等)。语法// target: 要使用 Proxy 包装的目标对象(可以是任何类型的对象,包括原生数组,函数,甚至另一个代理)。// handler: 一个对象,该对象的属性值通常是函数,定义了代理各种操作时p的行为。对象上的属性名是特定且可选的,如果没有某个属性,就会保留源对象的默认行为。const p = new Proxy(target, handler)handler 对象的方法有:原创 2021-03-14 00:08:00 · 1300 阅读 · 0 评论 -
js之Reflect
Reflect 是一个内置的对象,它提供拦截 JavaScript 操作的方法,是 ES6 为了操作对象而提供的新 API。Reflect不是一个函数对象,因此它是不可构造的。Reflect的所有属性和方法都是静态的。意义现阶段,某些方法同时在Object和Reflect对象上部署,未来的新方法将只部署在Reflect对象上。修改某些Object方法的返回结果,让其变得更规范化。如Object.defineProperty(obj, name, desc)在无法定义属性时,会抛出一个错误,而Re原创 2021-02-28 23:20:56 · 15759 阅读 · 0 评论 -
js 解构赋值
1. 数组的解构赋值// 对不需要的值,使用',',将该该值略过。const [first, , third, ...rest] = [1, 2, 3, 4, 5];console.log(first) // 1console.log(third) // 3console.log(rest) // [4, 5]const [a, b = 'default'] = []console.log(a,b) // undefined 'default'String、Set、Map等所有可遍历对原创 2021-02-22 22:12:40 · 706 阅读 · 0 评论 -
js正则表达式的修饰符
1. i修饰符ignore - 不区分大小写: 将匹配设置为不区分大小写,搜索时不区分大小写: A 和 a 没有区别。2. g修饰符global - 全局匹配:查找所有的匹配项。3. m修饰符multi line - 多行匹配:使边界字符 ^ 和 $ 匹配每一行的开头和结尾,记住是多行,而不是整个字符串的开头和结尾。es6新增4. y修饰符sticky -“粘连”修饰符: y修饰符的作用与g修饰符类似,也是全局匹配,后一次匹配都从上一次匹配成功的下一个位置开始。不同之处在于,g修饰符只要剩原创 2021-02-18 20:49:29 · 1618 阅读 · 0 评论 -
js数据结构之Map
1. 定义Map 对象保存键值对,并且能够记住键的原始插入顺序。任何值(对象或者原始值) 都可以作为一个键或一个值。键的比较:NaN 是与 NaN 相等的(虽然 NaN !== NaN),剩下所有其它的值是根据=== 运算符的结果判断是否相等。创建:let map = new Map([iterable])Iterable 可以是一个数组或者其他 iterable 对象,其元素为键值对(两个元素的数组,例如: [[ 1, ‘one’ ],[ 2, ‘two’ ]])。 每个键值对都会添加到新的 M原创 2021-02-17 22:04:51 · 998 阅读 · 0 评论 -
js数据结构之Set
1. 定义Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。Set中的元素只会出现一次,即 Set 中的元素是唯一的。2.实例属性和方法Set.prototype.size返回 Set 对象中的值的个数Set.prototype.add(value)在Set对象尾部添加一个元素。返回该Set对象。Set.prototype.clear()移除Set对象内的所有元素。Set.prototype.delete(value)移除Set中与这个值相等的元素,返回Set.pro原创 2021-02-17 21:12:15 · 465 阅读 · 0 评论 -
js函数的不定参数
es5function sum () { let num = 0 // arguments是伪数组使用数组方法需要先转换为数组 Array.prototype.forEach.call(arguments, function (item) { num += item * 1 }) return num}es6es6中不建议使用arguments,故使用展开运算符存储参数function sum (...nums) { let num = 0 nums.forE原创 2021-02-17 14:21:16 · 6025 阅读 · 0 评论 -
js参数的默认值
es5:function f (x, y, z) { if (x === undefined) { x = 0 } if (y === undefined) { y = 1 } if (z === undefined) { z = 2 } return x + y + z}es6:function f (x = 0, y = 1, z = 2) { return x + y + z}// 注意,如果中间的参数想使用默认值,那么给其赋值u原创 2021-02-17 14:11:20 · 512 阅读 · 0 评论 -
js的继承
ES6的继承class Parent0 { constructor (name = 'parents0') { this.name = name }}class Child0 extends Parent0 { constructor (type = 'child0') { super() // 无需定义父类之外额外属性时,constructor和super皆可省略,构造函数会隐式执行。 this.type = type }}let s0 = ne原创 2021-02-16 22:24:14 · 107 阅读 · 0 评论 -
js静态方法
es5:let Person = function (type) { this.type = type}// 静态方法Person.breathe = function () { console.log('breathing')}// 原型上的方法Person.prototype.speak = function () { Person.breathe() console.log('hhhhhh')}let student = new Person('student')原创 2021-02-16 21:27:34 · 432 阅读 · 0 评论 -
js类属性的setter和getter
在“类”的内部可以使用get和set关键字,对某个属性设置存值函数和取值函数,拦截该属性的存取行为。class A { constructor () { this._a = 'a' } set a (val) { if (Object.prototype.toString.call(val) !== '[object String]') { this._a = 'error' } else { this._a = val } }原创 2021-02-16 21:07:33 · 891 阅读 · 0 评论 -
js的类
es5:let Person = function (type) { this.type = type}Person.prototype.speak = function () { console.log('hhhhhh')}let student = new Person('student')let teacher = new Person('teacher')student.speak = function () { console.log('I love studyin原创 2021-02-16 20:42:08 · 81 阅读 · 0 评论 -
js数组方法find()和findIndex()
查找数组es5:let resultlet arr = [1, 2, 3, 4, 5]let findArr = arr.filter(item => { return item === 4})if (findArr.length !== 0) { result = true} else { result = false}es6:findfind() 方法返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined。let arr = [1, 2, 3,原创 2021-02-16 20:19:45 · 3042 阅读 · 0 评论 -
js数组方法Array.fill
Array.fillarr.fill(value[, start[, end]])fill() 方法用一个固定值填充一个数组中,从起始索引到终止索引内的全部元素,不包括终止索引,返回被修改后的数组。value:用来填充数组元素的值。start:起始索引,默认值为0。end:终止索引,默认值为 this.length。// 填充数组const arr = Array(3).fill(1); // [1, 1, 1]const arr1 = [1,2,3,4,5].fill(0,1,3)原创 2021-01-24 14:50:59 · 6865 阅读 · 0 评论 -
js数组方法Array.of
Array.of根据参数(参数数量不定),生成新数组。除了Array.of外,以下数组类型也具备of方法,方法功能类似。Int8ArrayUint8ArrayUint8ClampedArrayInt16ArrayUint16ArrayInt32ArrayUint32ArrayFloat32ArrayFloat64Arrayconst arr1 = Array.of(1, 2, 3, 4, 5); // [1, 2, 3, 4, 5]const arr2 = Array(1, 2,原创 2021-01-24 14:38:01 · 618 阅读 · 0 评论 -
js伪数组转数组
伪数组转数组伪数组:按索引方式储存数据具有length属性let arrLike = { 0: ‘a’, 1: ‘b’, 2: ‘c’, length: 3}常见伪数组arguments、NodeListES5:function test () { let args = [].slice.call(arguments) let imgs = [].slice.call(document.querySelectorAll('img'))}ES6:function te原创 2021-01-23 23:53:16 · 152 阅读 · 0 评论 -
js数组遍历方法及其区别
1.for循环支持break和continueconst arr = [1, 2, 3, 4, 5]for (let i = 0; i < arr.length; i++) { if (arr[i] === 1) { continue } else if (arr[i] === 4) { break } else { console.log(arr[i]) }}// 2 32.forEach不支持break和continueconst ar原创 2021-01-23 22:51:02 · 131 阅读 · 0 评论 -
js的作用域以及let和const
一、作用域作用域类型:1.全局作用域2.局部作用域3.块状作用域4.动态作用域1.全局作用域变量在函数或者代码块{}外定义,即为全局作用域。这里需要注意一点:全局变量和全局对象上window的属性的区别。在全局作用域内,使用var 声明的为全局变量,未使用var声明的为window的属性。var a = 1b = 2delete b // 返回true,等同于delete window.bconsole.log(b) // Uncaught ReferenceError: b is原创 2021-01-23 21:51:28 · 812 阅读 · 0 评论