
ES6
文章平均质量分 88
ECMAScript 6(简称ES6)是于2015年6月正式发布的JavaScript语言的标准,正式名为ECMAScript 2015(ES2015)。它的目标是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言
猫老板的豆
旁观自己 善待朝夕
展开
-
requestAnimationFrame(请求动画帧)
(简称 RAF)是浏览器提供的 JavaScript API,用于在浏览器下次重绘前执行指定的回调函数。它专门为动画设计,能实现更流畅的视觉效果。通过与浏览器刷新频率同步,显著提升了动画的流畅性和性能,是前端动画开发的首选方案。在需要高精度和低资源消耗的场景下,应优先使用它。的步伐跟着系统的刷新步伐走。它能保证回调函数在屏幕每一次的刷新间隔中只被执行一次,这样就不会引起丢帧现象。如果屏幕刷新率是60Hz(即每秒 60 次重绘),那么回调函数就每16.7ms被执行一次。原创 2025-03-11 12:59:05 · 1091 阅读 · 0 评论 -
require和import的区别
require 和 import 都是用于引入其他模块的关键字,它们的主要目的是为了实现代码的可重用性和模块化。当需要在一个文件中引用另一个文件或模块时,可以使用这两个关键字来实现这个功能。不过,它们之间存在着一些明显的区别。原创 2024-04-08 15:53:56 · 420 阅读 · 0 评论 -
消灭异步回调,还得是async-await
现在知道了,async-await是promise的语法糖了吧,不仅让我们书写代码时更加流畅,而且增强了代码的可读性。特别注意的是虽然async-await是建立在Promise机制之上的,但是并不能取代其地位,他们两者相辅相成,息息相关。其实async-await不止是Promise的语法糖,还是Generator的语法糖,Generator是什么?我们下篇见分晓。作者来碗盐焗星球链接https来源稀土掘金。...转载 2022-07-28 11:44:24 · 302 阅读 · 0 评论 -
细说 async/await
async/await 是 JavaScript 中用于处理异步操作的一对关键字。它们提供了一种更直观、更易于理解的方式来编写异步代码,使异步代码看起来更像同步代码。原创 2021-08-02 17:16:20 · 921 阅读 · 0 评论 -
彻底掌握 Promise
一、Promise 出现的原因在 Promise 出现以前,我们处理一个异步网络请求,大概是这样:// 请求 代表 一个异步网络调用。// 请求结果 代表网络请求的响应。请求1(function(请求结果1){ 处理请求结果1})看起来还不错。但是,需求变化了,我们需要根据第一个网络请求的结果,再去执行第二个网络请求,代码大概如下:请求1(function(请求结果1){ 请求2(function(请求结果2){ 处理请求结果2 })})看起来原创 2021-06-15 14:48:03 · 3378 阅读 · 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 · 561 阅读 · 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 · 627 阅读 · 1 评论 -
ES6之 Generator 函数
generator(生成器)是ES6标准引入的新的数据类型。一个generator看上去像一个函数,但可以。原创 2020-05-09 21:32:03 · 617 阅读 · 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 · 682 阅读 · 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 · 685 阅读 · 0 评论 -
ES6之高阶函数
能够接收一个或多个函数作为参数。可以返回一个函数。Array扩展:forEach、map、reduce、filter、sort 、every 、some 、find 、findIndex。原创 2018-03-15 15:53:13 · 1732 阅读 · 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 · 1489 阅读 · 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 · 3055 阅读 · 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 · 645 阅读 · 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 · 1688 阅读 · 1 评论 -
ES6之数值Number新特性
新特性:Number.isNaN函数 传统的isNaN函数会把非数值的参数转化成数值再进行判断,而Number. isNaN只对数值类型有效,非数值类型的参数一律返回false。当返回false的时候,不一定就是一个数值,有可能是一个非数值类型的参数。 isNaN('abc');//结果:true //'abc'无法转为一个数值,返回true Num原创 2017-08-14 22:05:38 · 4719 阅读 · 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 · 1326 阅读 · 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 · 600 阅读 · 0 评论 -
ES6之Module语法(import/export)
export:适合导出多个内容,导入时需要解构赋值。export default:适合导出模块的主要功能或默认值,导入时可以任意命名。原创 2019-03-19 14:45:39 · 752 阅读 · 0 评论 -
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 · 798 阅读 · 0 评论 -
ES6之 Map、Set 和 WeakMap、WeakSet
MapvsObject特性MapObject键类型任意类型(对象、函数等)仅字符串/Symbol顺序性保持插入顺序ES6+ 后按插入顺序但不保证遍历顺序迭代能力可直接迭代(for...of需要转换性能频繁增删键值对时更高效静态键时性能更好默认属性无原型链属性可能继承原型链属性SetvsArray特性SetArray元素唯一性自动去重允许重复元素操作APIadd()delete()push()pop()等查找性能has()时间复杂度O(1)includes()时间复杂度O(n)顺序性。原创 2019-03-20 16:45:58 · 740 阅读 · 0 评论 -
ES6之 let 和 const 关键字
const也是用于声明一个常量,并必须赋值,声明后不可修改,跟let一样,只在块级作用域起作用,不可重复声明同一个变量,不会变量提升,声明引用类型的常量时,要注意是传址赋值。原创 2017-08-07 18:15:22 · 1308 阅读 · 1 评论