
ES6
文章平均质量分 56
ECMAScript 6(简称ES6)是于2015年6月正式发布的JavaScript语言的标准,正式名为ECMAScript 2015(ES2015)。它的目标是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言
Serena_tz
write less,do better️️️
展开
-
字符串的相关方法
返回布尔值,表示参数字符串是否在源字符串的头部。返回布尔值,表示参数字符串是否在源字符串的尾部。这三个方法都支持第二个参数,表示开始搜索的位置。返回一个新字符串,表示将原字符串重复n次。返回布尔值,表示是否找到了参数字符串。转载 2023-01-05 16:13:49 · 177 阅读 · 0 评论 -
ES6 变量的解构赋值
对象的解构与数组有一个重要的不同。数组的元素是按次序排列的,变量的取值由它的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值。注意,采用这种写法时,变量的声明和赋值是一体的。对于let和const来说,变量不能重新声明,所以一旦赋值的变量以前声明过,就会报错。只要某种数据结构具有Iterator接口,都可以采用数组形式的解构赋值。字符串也可以解构赋值。这是因为此时,字符串被转换成了一个类似数组的对象。如果变量名与属性名不一致,必须写成下面这样。转载 2023-01-05 16:01:23 · 152 阅读 · 0 评论 -
异步回调promise
在promise原型里有then和catch方法,resolve由then方法提供,reject由catch方法提供。then方法表示的是成功之后的回调;catch方法表示的是失败之后的回调。实例状态全部成功,返回的承诺对象状态才是成功。实例状态任意一个成功,返回的承诺对象状态就是成功。async使用:等待一个函数执行完毕后,执行另外一个函数。resolve 和 reject 回调函数由谁提供?实例状态返回请求先成功的那一个。转载 2023-01-05 14:45:40 · 350 阅读 · 0 评论 -
ES6在应用中的重点
箭头函数的this指向上一层,上下文决定其this。常量,变量名全部大写。转载 2022-07-13 16:52:13 · 224 阅读 · 0 评论 -
ES6的详细注解
let声明变量的新方法。变量无法重复声明。块级作用域。也就是说let只在代码块中生效,包括if、else等花括号中的变量不会定义到全局。不存在变量提升。也就是说,在声明变量之前使用变量会报错。不影响作用域链效果。也就是,在函数中往上找变量,函数外面由let定义的变量,仍然能找到。用let实现循环遍历。这是因为只在块级作用域中生效。const用来声明一个常量,值没有办法被修改的。一定要赋初始值。一般常量使用大写(潜规则)常量的值没有办法被修改。块级作用域对于数组和对象的元素原创 2022-05-27 11:33:48 · 807 阅读 · 0 评论 -
Object属性的可枚举性和遍历方法
可枚举性对象的每一个属性都有一个描述对象(Descriptor),用来控制该属性的行为。Object.getOwnPropertyDescriptor方法可以获取该属性的描述对象。let obj = { foo: 123 };Object.getOwnPropertyDescriptor(obj, 'foo')// {// value: 123,// writable: true,// enumerable: true,// configurable: true/转载 2021-05-19 17:25:25 · 1237 阅读 · 0 评论 -
ES7、ES8、ES9的一些新特性
ECMASript 7 新特性Array.prototype.includesIncludes 方法用来检测数组中是否包含某个元素,返回布尔类型值指数操作符在 ES7 中引入指数运算符「**」,用来实现幂运算,功能与 Math.pow结果相同ECMASript 8 新特性async 和 awaitasync 和 await 两种语法结合可以让异步代码像同步代码一样async 函数async 函数的返回值为 promise 对象,promise 对象的结果由 async 函数执行的返回值原创 2021-04-28 15:31:37 · 208 阅读 · 0 评论 -
ES6新特性
let 关键字let关键字用来声明变量,使用 let声明的变量有几个特点:不允许重复声明块级作用域不存在变量提升不影响作用域链应用场景:声明变量使用 let 就对了const 关键字const关键字用来声明常量,const 声明有以下特点:声明必须赋初始值标识符一般为大写不允许重复声明值不允许修改块级作用域【注意】: 对象属性修改和数组元素变化不会出现 const错误应用场景:声明对象类型使用 const,非对象类型声明选择 let变量的解构赋值解构赋值:ES6 允原创 2021-04-28 15:20:33 · 255 阅读 · 0 评论 -
for循环中的函数使用axios请求数据,拿不到数据?
最近在完成一个ERP项目,在采购订单的新增模块,实现一个全选功能,在全选过程中每勾选一个都需要一个函数使用axios去后台请求一次数据,然后渲染到页面。但是循环完成后,页面并没有正确地显示数据,究其原因,在该函数中axios去获取数据是一个异步请求,但是,循环是不断执行的,每次循环axios获取数据还没有完成,就要再一次调用该方法,数据并没有请求成功,而循环已经结束。因此,这样的方法是不能实现我们的目标。所以我们要将axios请求设为同步请求,在jQuery中ajax获取数据有一个特定的参数可以配置该请求是原创 2021-04-16 16:38:53 · 1841 阅读 · 8 评论 -
ES6异步操作async函数
1、async简介async 是 ES7 才有的与异步操作有关的关键字,和 Promise , Generator 有很大关联的。语法:async function name([param[, param[, ... param]]]) { statements }name: 函数名称。param: 要传递给函数的参数的名称。statements: 函数体语句。2、async函数返回值async 函数返回一个 Promise 对象,可以使用 then 方法添加回调函数。async fun转载 2021-03-02 14:59:00 · 1460 阅读 · 0 评论 -
ES6迭代器的使用
1、Iterator迭代器介绍Iterator 是 ES6 引入的一种新的遍历机制,迭代器有两个核心概念:迭代器是一个统一的接口,它的作用是使各种数据结构可被便捷的访问,它是通过一个键为Symbol.iterator 的方法来实现。迭代器是用于遍历数据结构元素的指针(如数据库中的游标)。2、迭代过程迭代的过程如下:通过 Symbol.iterator 创建一个迭代器,指向当前数据结构的起始位置随后通过 next 方法进行向下迭代指向下一个位置, next 方法会返回当前位置的对象,对象包转载 2021-03-02 11:11:09 · 258 阅读 · 0 评论 -
ES6箭头函数中this的适用场景
1、适合使用的场景ES6 之前,JavaScript 的 this 对象一直很令人头大,回调函数,经常看到 var self = this 这样的代码,为了将外部 this 传递到回调函数中,那么有了箭头函数,就不需要这样做了,直接使用 this 就行。// 回调函数var Person = { 'age': 18, 'sayHello': function () { setTimeout(function () { console.log(this.age转载 2021-03-02 10:36:00 · 152 阅读 · 5 评论 -
ES6对象的新方法Object.is(value1, value2)
Object.is(value1, value2)——用来比较两个值是否严格相等,与(===)基本类似。基本用法:Object.is("q","q"); // trueObject.is(1,1); // trueObject.is([1],[1]); // falseObject.is({q:1},{q:1}); // false与(===)的区别//一是+0不等于-0Object.is(+0,-0); //false+0 === -0 /转载 2021-03-02 10:03:01 · 242 阅读 · 0 评论 -
对象的新方法 Object.assign(target, source_1, ···)的基本用法
Object.assign(target, source_1, ···)用于将源对象的所有可枚举属性复制到目标对象中。基本用法:let target = {a: 1};let object2 = {b: 2};let object3 = {c: 3};Object.assign(target,object2,object3); // 第一个参数是目标对象,后面的参数是源对象target; // {a: 1, b: 2, c: 3}如果目标对象和源对象有同名属性,或者多个源对象有同转载 2021-03-02 10:01:35 · 297 阅读 · 0 评论 -
javascript深拷贝和浅拷贝的简单区分
浅拷贝创建一个新对象,这个对象有着原始对象属性值的一份精确拷贝。如果属性是基本类型,拷贝的就是基本类型的值,如果属性是引用类型,拷贝的就是内存地址 ,所以如果其中一个对象改变了这个地址,就会影响到另一个对象。深拷贝深拷贝会拷贝所有的属性,并拷贝属性指向的动态分配的内存。当对象和它所引用的对象一起拷贝时即发生深拷贝。深拷贝相比于浅拷贝速度较慢并且花销较大。拷贝前后两个对象互不影响。...原创 2021-03-02 09:57:40 · 97 阅读 · 0 评论 -
ES6字符串的拓展方法
1、子串的识别ES6 之前判断字符串是否包含子串,用 indexOf 方法,ES6 新增了子串的识别方法。includes():返回布尔值,判断是否找到参数字符串。startsWith():返回布尔值,判断参数字符串是否在原字符串的头部。endsWith():返回布尔值,判断参数字符串是否在原字符串的尾部。以上三个方法都可以接受两个参数,需要搜索的字符串,和可选的搜索起始位置索引。let string = "apple,banana,orange";string.includes("bana转载 2021-03-02 09:25:38 · 138 阅读 · 0 评论 -
ES6的Set对象
Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。1、Set 中的特殊值Set 对象存储的值总是唯一的,所以需要判断两个值是否恒等。有几个特殊值需要特殊对待:+0 与 -0 在存储判断唯一性的时候是恒等的,所以不重复;undefined 与 undefined 是恒等的,所以不重复;NaN 与 NaN 是不恒等的,但是在 Set 中只能存一个,不重复。代码let mySet = new Set();mySet.add(1); // Set(1) {1}mySet.ad转载 2021-03-01 17:20:07 · 137 阅读 · 0 评论 -
ES6的Map对象
Map 对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值。1、Maps 和 Objects 的区别一个 Object 的键只能是字符串或者 Symbols,但一个 Map 的键可以是任意值。Map 中的键值是有序的(FIFO 原则),而添加到对象中的键则不是。Map 的键值对个数可以从 size 属性获取,而 Object 的键值对个数只能手动计算。Object 都有自己的原型,原型链上的键名有可能和你自己在对象上的设置的键名产生冲突。2、Map 中的 key(1)key转载 2021-03-01 17:08:25 · 547 阅读 · 0 评论 -
ES6新增基本数据类型Symbol
ES6 引入了一种新的原始数据类型 Symbol ,表示独一无二的值,最大的用法是用来定义对象的唯一属性名。ES6 数据类型除了 Number 、 String 、 Boolean 、 Objec t、 null 和 undefined ,还新增了 Symbol 。使用场景:1、作为属性名:由于每一个 Symbol 的值都是不相等的,所以 Symbol 作为对象的属性名,可以保证属性不重名。let sy = Symbol("key1"); // 写法1let syObject = {};sy转载 2021-03-01 16:52:20 · 508 阅读 · 0 评论 -
ES6新特性简单介绍
1、 let、const 和 block 作用域let 允许创建块级作用域,例如:var a = 2;{let a = 3;console.log(a); // 3}console.log(a); // 2const也是块级作用域,声明一个常量,声明的常量类似于指针,它指向某个引用,也就是说这个「常量」并非一成不变的,如:{const ARR = [5,6];ARR.push(7);//值可以改变的console.log(ARR); // [5,6,7]ARR = 10; /原创 2021-02-23 17:09:13 · 154 阅读 · 0 评论 -
promise异步回调解决回调地狱的问题
1、promise是什么主要用于异步计算可以将异步操作队列化,按照期望的顺序执行,返回符合预期的结果可以在对象之间传递和操作promise,帮助我们处理队列2、异步回调的问题:之前处理异步是通过纯粹的回调函数的形式进行处理很容易进入到回调地狱中,剥夺了函数return的能力问题可以解决,但是难以读懂,维护困难稍有不慎就会踏入回调地狱 - 嵌套层次深,不好维护3、promise简介promise是一个对象,对象和函数的区别就是对象可以保存状态,函数不可以(闭包除外)并未剥夺函数转载 2021-02-23 10:16:50 · 444 阅读 · 0 评论 -
commonjs、ES6的模块暴露和模块引入
一、commonjscommonjs是作用于服务端应用程序,让js程序具有模块化功能的一种语法规范,执行方式是同步且运行时加载。(一)、module.exports 导出定义一个匿名对象,将需要导出的成员赋值到这个匿名对象上,然后再赋值到module.exports 导出let name='ommonjs'let sayhi=()=>{ console.log(str)}module.exports={ name, sayhi}(二)、exports 导出原创 2021-01-21 16:07:31 · 2537 阅读 · 0 评论