ES6
文章平均质量分 85
ECMAScript 6(简称ES6)是于2015年6月正式发布的JavaScript语言的标准,正式名为ECMAScript 2015(ES2015)。它的目标是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言
猫老板的豆
旁观自己 善待朝夕
展开
-
require和import的区别
require和import都是用于引入其他模块的关键字,它们的主要目的是为了实现代码的可重用性和模块化。当需要在一个文件中引用另一个文件或模块时,可以使用这两个关键字来实现这个功能。不过,它们之间存在着一些明显的区别。原创 2024-04-08 15:53:56 · 324 阅读 · 0 评论 -
消灭异步回调,还得是async-await
现在知道了,async-await是promise的语法糖了吧,不仅让我们书写代码时更加流畅,而且增强了代码的可读性。特别注意的是虽然async-await是建立在Promise机制之上的,但是并不能取代其地位,他们两者相辅相成,息息相关。其实async-await不止是Promise的语法糖,还是Generator的语法糖,Generator是什么?我们下篇见分晓。作者来碗盐焗星球链接https来源稀土掘金。...转载 2022-07-28 11:44:24 · 278 阅读 · 0 评论 -
细说 async/await
async/await 是 JavaScript 中用于处理异步操作的一对关键字。它们提供了一种更直观、更易于理解的方式来编写异步代码,使异步代码看起来更像同步代码。原创 2021-08-02 17:16:20 · 860 阅读 · 0 评论 -
彻底掌握 Promise
一、Promise 出现的原因在 Promise 出现以前,我们处理一个异步网络请求,大概是这样:// 请求 代表 一个异步网络调用。// 请求结果 代表网络请求的响应。请求1(function(请求结果1){ 处理请求结果1})看起来还不错。但是,需求变化了,我们需要根据第一个网络请求的结果,再去执行第二个网络请求,代码大概如下:请求1(function(请求结果1){ 请求2(function(请求结果2){ 处理请求结果2 })})看起来原创 2021-06-15 14:48:03 · 2997 阅读 · 3 评论 -
手写一个Promise
什么是promisePromise异步操作详解Promise详细用法1. Promise代码基本结构实例化Promise对象时传入一个函数作为执行器,有两个参数(resolve和reject)分别将结果变为成功态和失败态。当实例化Promise时,构造函数中就要马上调用传入的executor函数执行。我们可以写出基本结构:function Promise(executor) { this.state = 'pending'; //状态 this.value = undefined原创 2020-05-29 15:45:06 · 530 阅读 · 0 评论 -
ES6之新特性汇总
ES6之 let 和 const 关键字ES6之 解构赋值ES6之 扩展运算符ES6之 字符串String新特性ES6之 数值Number新特性ES6之 数组Array新特性ES6之 函数优化(默认参数、剩余参数、 箭头函数)ES6之 PromiseES6之 async/awaitES6之 Class(类)ES6之 Map、Set 和 WeakMap、WeakSetES6之 Module 语法(import 和 export)ES6之 Generator 函数ES6之高阶函数ES6之 for…of 循环原创 2020-05-09 21:35:30 · 591 阅读 · 1 评论 -
ES6之 Generator 函数
generator(生成器)是ES6标准引入的新的数据类型。一个generator看上去像一个函数,但可以返回多次。Generator函数有两个特征:function命令与函数名 之间有一个星号*函数体内部使用 yield吾句定义不同的内部状态function* hello () { yield "hello"; yield "world"; return "done";}let h = hello();console.log(h.next()); //{valu原创 2020-05-09 21:32:03 · 572 阅读 · 0 评论 -
ES6之Class(类)
JavaScript 语言的传统方法是通过构造函数定义并生成新对象,ES6中引入 class 的概念,通过 class 关键词自定义类。class User { constructor(name, age = 20) { // 构造方法 this.name = name; // 添加属性并且赋值 this.age = age; } sayHello() { // 定义方法 return "hello"; } stati原创 2020-05-09 21:26:16 · 631 阅读 · 0 评论 -
ES6之扩展运算符
扩展运算符(spread)是三个点(…), 将一个数组转为用逗号分隔的参数序列 。console.log(...[1, 2, 3]); //1 2 3console.log(1, ...[2, 3, 4], 5); // 1 2 3 4 5function add(x, y) { return x + y;}var numbers = [1, 2];console.log(add(...numbers)); // 3// 数组合并let arr = [...[1, 2, 3]原创 2020-05-09 21:14:55 · 619 阅读 · 0 评论 -
ES6之高阶函数
JavaScript的函数其实都指向某个变量。既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。Array扩展:forEach、map、reduce、filter、sort 、every 、some 、find 、findIndex。原创 2018-03-15 15:53:13 · 1638 阅读 · 1 评论 -
JavaScript常用数组算法总结
数组去重方法一//利用 filtervar arr = [1,4,2,5,6,4,2,7]var arr1 = arr.filter(function(element, index, self){ return self.indexOf(element) == index});arr1 //[1, 4, 2, 5, 6, 7]方法二//利用indexOffunction uni原创 2017-08-18 17:03:39 · 1452 阅读 · 0 评论 -
ES6之字符串String新特性
ES6之字符串新特性:模板字符串“模板字符串”是字符串的一个新特性,传统的字符串实现拼接的时候,要将变量插入字符串中,语法是这样的, let name = "Jacky"; let occupation = "doctor"; //传统字符串拼接 let str = "He is "+ name +",he is a "+ occupation;上面最后一句代码实现将变量name和o原创 2017-08-10 16:32:16 · 3005 阅读 · 0 评论 -
ES6之块级作用域
为什么需要块级作用域?ES5 只有全局作用域和函数作用域,没有块级作用域,这带来很多不合理的场景。第一种场景,内层变量可能会覆盖外层变量。var tmp = new Date();function f() { console.log(tmp); if (false) { var tmp = 'hello world'; }}f(); // undefined上面代码的原意是,i...原创 2017-08-08 10:08:25 · 614 阅读 · 1 评论 -
ES6之数组Array新特性
Array.of()函数 将一组值,转换成数组。Array.of(1,2,3,4,5);//结果:[1,2,3,4,5]Array.from( )函数 可以将类似数组的对象或者可遍历的对象转换成真正的数组。有哪些是类似数组的对象?最常见的就是调用getElementsByTagName方法得到的结果,它就是一个类似数组的结果let ele = document.getElementsB原创 2017-09-10 11:13:29 · 1635 阅读 · 1 评论 -
ES6之数值Number新特性
新特性:Number.isNaN函数 传统的isNaN函数会把非数值的参数转化成数值再进行判断,而Number. isNaN只对数值类型有效,非数值类型的参数一律返回false。当返回false的时候,不一定就是一个数值,有可能是一个非数值类型的参数。 isNaN('abc');//结果:true //'abc'无法转为一个数值,返回true Num原创 2017-08-14 22:05:38 · 4558 阅读 · 1 评论 -
ES6之解构赋值
关于给变量赋值,传统的变量赋值是这样的: var arr = [1,2,3];//把数组的值分别赋给下面的变量; var a = arr[0]; var b = arr[1]; var c = arr[2]; console.log(a);//a的值为1 console.log(b);//b的值为2 console.log(c);//c的值为3变量原创 2017-08-09 18:04:36 · 1286 阅读 · 0 评论 -
Axios 各种方法传递参数 Demo
Axios 各种方法传递参数 Demoget delete 方法较为不同axios.get(url[, config])axios.delete(url[, config])axios.post(url[, data[, config]])axios.put(url[, data[, config]])axios.patch(url[, data[, config]])getA...原创 2018-12-11 17:31:02 · 578 阅读 · 0 评论 -
ES6之Module语法(import/export)
ES6之前已经出现了js模块加载的方案:CommonJS, AMD, CMD都是JS模块化的规范。CommonJS是服务器端js模块化的规范,NodeJS是这种规范的实现。AMD(异步模块定义)和CMD(通用模块定义)都是浏览器端js模块化的规范。RequireJS 遵循的是 AMD,SeaJS 遵循的是CMD。ES6在语言规格的层面上,实现了模块功能,而且实现得相当简单,完全可...原创 2019-03-19 14:45:39 · 696 阅读 · 1 评论 -
JavaScript中 for of 和 for in 的区别?
先说结论:for...in 循环出的是 key, for...of 循环出的是 value 。for...of 是 ES6 新引入的特性,修复了 ES5 引入的 for...in 的不足。for...of 不能循环普通的对象,需要通过和 Object.keys() 搭配使用。推荐在循环对象属性的时候使用 for...in ,在遍历数组的时候的时候使用 for...of 。let ...原创 2019-03-20 15:27:48 · 763 阅读 · 0 评论 -
ES6之 Map、Set 和 WeakMap、WeakSet
Map、WeakMap、Set和WeakSet都是JavaScript中用于存储数据的结构,但它们之间存在一些关键的区别。Map和Set都是普通的键值对或值的集合。Map是一个键值对的集合,其中的键和值可以是任何类型的对象,且键是唯一的。Map允许你通过键来存储和检索值,因此可以通过get方法获取值。同时,Map的键值对可以通过迭代器进行遍历。Set则是一个值的集合,它的值也是唯一的,因此可以用于数组去重。Set中的元素不可重复且会自动排序。WeakMap和WeakSet是Map和Set的“弱”版本。原创 2019-03-20 16:45:58 · 683 阅读 · 1 评论 -
ES6之 let 和 const 关键字
const也是用于声明一个常量,并必须赋值,声明后不可修改,跟let一样,只在块级作用域起作用,不可重复声明同一个变量,不会变量提升,声明引用类型的常量时,要注意是传址赋值。原创 2017-08-07 18:15:22 · 1244 阅读 · 1 评论