ES6
文章平均质量分 57
棠樾
夫君子之行,静以修身,俭以养德。非淡泊无以明志,非宁静无以致远。
展开
-
var、let 和 const 区别的实现原理是什么
var和let的区别,面试老生常谈的问题,大多数人回答可能就是作用域和变量提升这两点不同,少有人能够知道内在原理,这样的回答面试官会满意吗?(手动滑稽)我们就从声明过程,内存分配,和变量提升这三点来看这三者之间的区别。一.声明过程var:遇到有var的作用域,在任何语句执行前都已经完成了声明和初始化,也就是变量提升而且拿到undefined的原因由来function: 声明、初始化、赋值一开始就全部完成,所以函数的变量提升优先级更高let:解析器进入一个块级作用域,发现let关键字,变量只是先原创 2022-01-20 14:50:10 · 593 阅读 · 2 评论 -
Promise.all 获取失败原因
Promise.all()接受一个由promise任务组成的数组,可以同时处理多个promise任务,当所有的任务都执行完成时,Promise.all()返回resolve,但当有一个失败(reject),则返回失败的信息,即使其他promise执行成功,也会返回失败。可以用一句话来说Promise.all(),要么全有要么全无。但话又说回来,有时候我们使用Promise.all()执行很多个网络请求,可能有一个请求出错,但我们并不希望其他的网络请求也返回reject,要错都错,这样显然是不合理的。原创 2022-01-17 16:46:27 · 9559 阅读 · 0 评论 -
ES6 promise 记录一些问题
问题:1.使用promise.all的时候,只要有一个执行reject,promise.all就会进入catch回调。现在想要做到promise.all中即使一个promise进入了reject,promise.all依然能把其他数据正确返回。这时需要对promise.all中的promise函数数组进行处理。promiseList.map(item =>{ return item.catch(err=>{ return err; })})完成代码如原创 2021-11-30 12:24:03 · 621 阅读 · 0 评论 -
箭头函数中的this指向问题
箭头函数没有自己的 this,它内部的 this 是外层代码块的 this,也就是定义箭头函数时所在的对象。ES6 标准入门里面对箭头函数 this 的指向有如下说法:函数体内的 this 对象就是定义时所在的对象,而不是调用时所在的对象。一般this 对象的指向是可变的,但是在箭头函数中,this 的指向是固定的。普通函数普通函数的this在声明时指向window,在调用时指向调用...原创 2020-09-24 17:55:00 · 325 阅读 · 0 评论 -
Object.freeze()
Object.freeze()方法可以冻结一个对象。一个被冻结的对象再也不能被修改;冻结了一个对象则不能向这个对象添加新的属性,不能删除已有属性,不能修改该对象已有属性的可枚举性、可配置性、可写性,以及不能修改已有属性的值。此外,冻结一个对象后该对象的原型也不能被修改。freeze()返回和传入的参数相同的对象。语法:Object.freeze(obj) // obj 参数 要被冻结的对象。返回值:被冻结的对象被冻结对象自身的所有属性都不可能以任何方式被修改。任何修改尝试都会失败..原创 2021-08-26 18:06:15 · 387 阅读 · 0 评论 -
ES2020 新语法:可选链操作符( ?. )
可选链操作符(?.)允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。?.操作符的功能类似于.链式操作符,不同之处在于,在引用为空(nullish)(null或者undefined) 的情况下不会引起错误,该表达式短路返回值是undefined。与函数调用一起使用时,如果给定的函数不存在,则返回undefined。当尝试访问可能不存在的对象属性时,可选链操作符将会使表达式更短、更简明。在探索一个对象的内容时,如果不能确定哪些属性必定存在,可选链操作符也是很...原创 2021-08-25 16:51:00 · 753 阅读 · 0 评论 -
通过 set 和 map 实现对象数组去重
根据所有属性去重// 方法一const map = new Map()arr.filter( item => !map.has(JSON.stringify(item)) && map.set(JSON.stringify(item), 1)// 方法二[...new Set(arr.map(e => JSON.stringify(e)))].map(e => JSON.parse(e)]根据对象中某个属性去重// key 是某个属性const m.转载 2021-08-21 16:43:31 · 394 阅读 · 0 评论 -
js判断空对象的几种方法
let obj = {};1.jinag原创 2021-06-11 12:06:35 · 239 阅读 · 1 评论