随笔分类 -  js

摘要:js判断文件类型详解 通过file的type属性判断 <input type="file" onchange="onchangecb(this)" /> <script> function onchangecb(e) { const file = e.files[0]; console.log(fi 阅读全文
posted @ 2023-12-11 15:02 柯基与佩奇 阅读(712) 评论(0) 推荐(0)
摘要:有没有区别? 先上一个 Demo,看看async函数中return时加和不加await有没有区别: function bar() { return Promise.resolve("this from bar()."); } async function foo1() { return await 阅读全文
posted @ 2023-11-30 15:01 柯基与佩奇 阅读(362) 评论(0) 推荐(0)
摘要:前言 与许多其他编程语言一样,JavaScript 也在不断发展。每年,该语言都会通过新功能变得更加强大,使开发人员能够编写更具表现力和简洁的代码。 ES13(ECMAScript 2022)新特性 1.类 在 ES13 之前,类字段只能在构造函数中声明。与许多其他语言不同,无法在类的最外层作用域中 阅读全文
posted @ 2023-11-27 16:54 柯基与佩奇 阅读(51) 评论(0) 推荐(0)
摘要:1. Promise.any E12 新增的 Promise 的方法 接收一个 Promise 数组,数组中如有非 Promise 项,则此项当做成功 如果有一个 Promise 成功,则返回这个成功结果 如果所有 Promise 都失败,则报错 // 当有成功的时候,返回最快那个成功 functi 阅读全文
posted @ 2023-11-27 16:50 柯基与佩奇 阅读(35) 评论(0) 推荐(0)
摘要:1. Promise.allSettled ES11 新增的 Promise 的方法 接收一个 Promise 数组,数组中如有非 Promise 项,则此项当做成功 把每一个 Promise 的结果,集合成数组,返回 function fn(time, isResolve) { return ne 阅读全文
posted @ 2023-11-27 16:50 柯基与佩奇 阅读(58) 评论(0) 推荐(0)
摘要:1. Array.flat 有一个二维数组,想让他变成一维数组: const arr = [1, 2, 3, [4, 5, 6]]; console.log(arr.flat()); // [ 1, 2, 3, 4, 5, 6 ] 还可以传参数,参数为降维的次数 const arr = [1, 2, 阅读全文
posted @ 2023-11-27 16:50 柯基与佩奇 阅读(78) 评论(0) 推荐(0)
摘要:1. for await of 来看以下场景 function fn(time) { return new Promise((resolve, reject) => { setTimeout(() => { resolve(`${time}毫秒后成功!!!`); }, time); }); } fn 阅读全文
posted @ 2023-11-27 16:50 柯基与佩奇 阅读(24) 评论(0) 推荐(0)
摘要:1. Object.values 可以用来获取对象的 value 的集合 const obj = { name: "柯基", age: 22, gender: "男", }; const values = Object.values(obj); console.log(values); // [ ' 阅读全文
posted @ 2023-11-27 16:49 柯基与佩奇 阅读(30) 评论(0) 推荐(0)
摘要:1. includes 传入元素,如果数组中能找到此元素,则返回 true,否则返回 false const includeArr = [1, 2, 3, "柯基", "科比"]; const isKobe = includeArr.includes("科比"); console.log(isKob 阅读全文
posted @ 2023-11-27 16:49 柯基与佩奇 阅读(102) 评论(0) 推荐(0)
摘要:1. let 和 const 要逐渐放弃 let,在项目中多用 let 和 const,与 let 的区别: let 有变量提升,有初始化提升,值可变 let 有变量提升,没有初始化提升,值可变 const 有变量提升,没有初始化提升,值不可变,但如果是定义对象,则属性可变 暂时性死区问题说明:其实 阅读全文
posted @ 2023-11-27 16:49 柯基与佩奇 阅读(39) 评论(0) 推荐(0)
摘要:有以下三种: 数据绑定与观察者模式 函数参数的验证 简便的构造函数 1.数据绑定与观察者模式 实现数据绑定与观察者模式,也可以使用 ES5 新增的 Object.defineProperty()方法,Vue2 就是使用该技术实现的,而 Vue3 为什么换用 Pro 需要来实现呢? 所以现在先来对比一 阅读全文
posted @ 2023-11-27 16:48 柯基与佩奇 阅读(67) 评论(0) 推荐(0)
摘要:详解 JS 中的 Proxy(代理)和 Reflect(反射) 总所周知,Vue2 => Vue3 时,数据响应式方法从 Object.defineProperty()方法变成了 Proxy(),所以今天与 Proxy(代理)和 Reflect(反射)的知识。 讲解 Proxy 和 Reflect 阅读全文
posted @ 2023-11-27 16:47 柯基与佩奇 阅读(2126) 评论(0) 推荐(0)
摘要:for...in 的特点 for...in 循环返回的值都是数据结构的 键值名(即下标)。 遍历对象返回的对象的 key 值,遍历数组返回的数组的下标(key)。 for...in 循环不仅可以遍历数字键名,还会遍历原型上的值和手动添加的其他键。 特别情况下, for...in 循环会以看起来任意的 阅读全文
posted @ 2023-11-27 16:47 柯基与佩奇 阅读(197) 评论(0) 推荐(0)
摘要:什么是迭代器模式 迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。 ——《设计模式:可复用面向对象软件的基础》 可以说迭代器模式就是为了遍历存在的。提到遍历,大家都对那些手段耳熟能详了,下面先简单列一下各种数据类型的遍历: 遍历数组 for 循环 forEach 阅读全文
posted @ 2023-11-27 16:46 柯基与佩奇 阅读(95) 评论(0) 推荐(0)
摘要:Generator 是 ES6 中新增的语法,和 Promise 一样,都可以用来异步编程。Generator 函数可以说是 Iterator 接口的具体实现方式。Generator 最大的特点就是可以控制函数的执行。 function* 用来声明一个函数是生成器函数,它比普通的函数声明多了一个*, 阅读全文
posted @ 2023-11-27 16:43 柯基与佩奇 阅读(61) 评论(0) 推荐(0)
摘要:1. generator 的使用 Generator 函数跟普通函数的写法有非常大的区别: 一是,function 关键字与函数名之间有一个星号; 二是,函数体内部使用 yield 语句,定义不同的内部状态(yield 在英语里的意思就是“产出”)。 最简单的 Generator 函数如下: fun 阅读全文
posted @ 2023-11-27 16:43 柯基与佩奇 阅读(93) 评论(0) 推荐(0)
摘要:目录一、Promise 介绍定义特点缺点场景基本用法二、promise 源码实现 一、Promise 介绍 定义 Promise 是异步编程的一种解决方法,比传统的回调函数和事件更合理;它是由社区提出和实现经由 ES6 将其写进语言标准,并在原生提供了 Promise 对象; Promise 可以理 阅读全文
posted @ 2023-11-27 16:41 柯基与佩奇 阅读(295) 评论(0) 推荐(0)
摘要:目录前言一个令人头疼的需求准备工作Promiseasynccombine-async-error 心路历程封装之前让 await 永远不要抛出错误保证不抛出错误保证顺序执行开始封装使用形式完成 combineAsyncError 的返回值combineAsyncError 的初始化工作在 handl 阅读全文
posted @ 2023-11-27 16:40 柯基与佩奇 阅读(37) 评论(0) 推荐(0)
摘要:Promise 的状态一经改变就不能再改变 .then 和.catch 都会返回一个新的 Promise catch 不管被连接到哪里,都能捕获上层的错误 在 Promise 中,返回任意一个非 promise 的值都会被包裹成 promise 对象,例如 return 2 会被包装为 return 阅读全文
posted @ 2023-11-27 16:40 柯基与佩奇 阅读(987) 评论(0) 推荐(0)
摘要:前言 数组在 js 中作为一个非常重要的类型之一,在对数据处理,存储数据,条件渲染的时候经常会用到,所以随着 ES 的不断更新,数组的方法也是越来越多,也让使用数组对数据操作的时候,越来越简单,但是不经意间,数组的方法已经有 42 个之多,接下来让看看有哪些数组方法从出来就你还没用过的吧! 数组方法 阅读全文
posted @ 2023-11-27 16:04 柯基与佩奇 阅读(52) 评论(0) 推荐(0)