js
文章平均质量分 71
前端对象
一棵树,站成永恒
展开
-
数组中map遍历会改变原数组吗?
提到map用法,很多人想到forEach,那么这两种方法的区别是什么?会有人说,forEach会改变原数组;map不会改变原数组,返回一个新数组。事实是这样的吗?答案不是,这种说法不准确,是有条件的。1、当数组的值为基本类型的时候,map遍历数组,当对数组中的值做处理的时候,的确不会改变原数组。let a = [1,2,3]b=a.map(item => { item = item+1 })console.log(a) // [1,2,3]console.log(b) // [2,3,4]原创 2021-07-02 21:55:22 · 5395 阅读 · 2 评论 -
浏览器环境和node环境下的事件循环
前提:浏览器中的事件循环(Event Loop)和node环境下的事件循环表现是不同的。因为运行和执行是两个概念,不同的环境造就不同的人生。一、浏览器中的 Event Loop1、核心概念事件循环中的异步队列有两种:macro(宏任务)队列和 micro(微任务)队列。宏任务队列可以有多个,微任务队列只有一个。(1)常见的 macro-task 比如:setTimeout、setInterval、 setImmediate、script(整体代码)、 I/O 操作、UI 渲染等。(2)常见的 mi原创 2021-04-10 12:46:56 · 369 阅读 · 1 评论 -
当 async/await 遇上 forEach
一、问题描述在这个例子中,通过 forEach 遍历的将每一个数字都执行 multi 操作。代码执行的结果是:1 秒后,一次性输出1,4,9。这个结果和我们的预期有些区别,我们是希望每间隔 1 秒,然后依次输出 1,4,9;所以当前代码应该是并行执行了,而我们期望的应该是串行执行。 forEach 的回调函数是一个异步函数,异步函数中包含一个 await 等待 Promise 返回结果,我们期望数组元素串行执行这个异步操作,但是实际却是并行执行了。二、怎么解决方法一、方法二、利用for of 代原创 2021-03-25 15:52:10 · 795 阅读 · 0 评论 -
JavaScript中的常用操作
在项目开发中整理了常用的一些js技巧,灵活的运用,会增强你解决问题的能力,也会对你的代码简洁性有很大的改观,有利于指导工作的开展一、数组去重1、利用set数据结构,set类似数组,成员都是唯一的,没有重复的,本身是构造函数,所以可以new。const arr=[1,1,1,4,5,5,4,3,9,3];function unique(arr){uniqueArray.from(new Set(arr)) // 或者 […new Set(arr)]}newArr(arr)2、利用indexOf原创 2021-03-03 21:05:28 · 190 阅读 · 1 评论 -
校验数组中对象键值是否重复
方法一、双重for循环3、利用es5中的every方法function checkRepeatName (arr) {const obj = {}let flag = arr.every(item =>{return obj[item.name] ? false : obj[item.name] = true})return flag},this.checkRepeatName(formdata) // false, 有重复...原创 2020-07-03 17:00:54 · 1107 阅读 · 0 评论 -
页面倒计时的写法
写法一、es61、声明类Timer/**类说明@class Timer@constructor/export default class Timer {/*http请求@constructor@param {Object} count: 计时数量, 默认60 progress: 计时进度事件 complete: 计时结束事件@return {Number}/constructor (options) {this.options = opt原创 2020-06-30 22:17:40 · 644 阅读 · 0 评论 -
谈谈深拷贝和浅拷贝
今天在做项目购物车需求的时候,遇到一个同深拷贝、浅拷贝相关的问题,所以来谈谈深拷贝和浅拷贝。什么是深拷贝?复制基本类型的属性;引用类型的属性复制,复制栈中的变量 和 变量指向堆内存中的对象的指针和堆内存中的对象。什么是浅拷贝?复制基本类型的属性;引用类型的属性复制,复制栈中的变量 和 变量指向堆内存中的对象的指针,不复制堆内存中的对象。说的通俗易懂些,就是假设B赋值给A,当修改A时,看B是否...原创 2019-11-19 22:03:49 · 154 阅读 · 0 评论 -
谈谈javaScript中的原型对象以及原型链
谈到原型对象以及原型链,很多人都一头雾水。其实,万物之间都是普遍的,联系的,我们可以借用生活中的事物来深入的理解原型链。那么,在弄懂原型链的概念之前,先要清楚构造函数和继承的概念。一、构造函数什么是构造函数?简单来说,就是描述一类对象统一结构的函数。什么时候来使用构造函数?只要反复创建相同结构的多个对象时,都要用构造函数。1、定义构造函数function Mother(age){ // ...原创 2019-07-20 10:48:48 · 105 阅读 · 0 评论 -
js数组去重--推荐es6之set数据结构
利用set数据结构,set类似数组,成员都是唯一的,没有重复的,本身是构造函数,所以可以new。const arr=[1,1,1,4,5,5,4,3,9,3];function newArr(arr){return Array.from(new Set(arr)) // 或者 […new Set(arr)]}newArr(arr)...原创 2019-07-20 10:40:20 · 123 阅读 · 0 评论