分类: JavaScript
thumbnail

JavaScript刷题方法总结

数组 数组的foreach、filter、map、find forEach 功能: 循环遍历数组中的每一项,只能遍历数组 写法: 数组对象.forEach(function(参数变量名1,参数变量……
thumbnail

JavaScript常见设计模式

设计模式的定义:在面向对象软件设计过程中针对特定问题的简洁而优雅的解决方案 1、单例模式 单例模式的定义:保证一个类仅有一个实例,并提供一个访问……
thumbnail

手撕call、bind、apply

返回值: call/apply:fun执行的结果 bind:返回fun的拷贝,并拥有指定的this值和初始参数 参数 thisArg(可选): 若thisArg存在,fun的this指……
thumbnail

手撕深拷贝

递归方法实现深度克隆原理:遍历对象、数组直到里边都是基本数据类型,然后再去复制,就是深度拷贝。 步骤: 终止条件,非对象或者null则终止 判断obj,是数……
thumbnail

实现不丢失精度的浮点数加法

function add(a, b) { let aDigits = (a + "").split(".");//转换为字符串 let aDecimals = aDigits.length > 1 ? aDigits[1] : "";//判断……
thumbnail

事件捕获|冒泡

JS中的事件顺序 两个模型 事件捕获:由外到内 事件冒泡:由内到外,理解成从里面开始冒泡   | | ---------------| |----------------- | o……
thumbnail

async/await

从字面意思来理解。async 是异步的意思,而 await 是 等待 ,所以理解 async用于申明一个function是异步的,而 await 用于等待一个异步方法执行完……
thumbnail

手撕new()到底做了些什么?

new的实现步骤 要创建 Person 的新实例,必须使用 new 操作符。以这种方式调用构造函数实际上会经历以下 4个步骤: (1) 创建一个新对象; var obj = {}; [toc]……
thumbnail

手撕promise.all .any .race

Promise.resolve Promise.resolve最终结果还是一个Promise,并且与Promise.resolve(该值)传入的值息息相关 传入的参数可以是一个Promise实例,那么……
thumbnail

JavaScript异步promise详解

什么是Promise?我们用Promise来解决什么问题? Promise 是异步编程的一种解决方案: 从语法上讲,promise是一个对象,从它可以获取异步操作的消息;从本……
thumbnail

手撕防抖与节流

函数防抖(debounce) 在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时。 手写防抖 假设我们要点击一个按钮新增一条信息,当然我们……
thumbnail

JavaScript 数据类型转换与类型判断详解

内置类型 JavaScript 中有 7 中内置类型,分为基本类型和引用类型。 (1)基本类型 nullundefinedbooleannumberstringsymbol ES6新增bigint(ES6+新……
thumbnail

call,apply,bind区别

JavaScript 为我们专门提供了一些函数方法来帮我们更优雅的处理函数内部this的指向问题,常用的有 bind()、call()、apply()三种方法。 call,apply,bi……
thumbnail

闭包

当程序调用一个函数时,会发生什么? 1JavaScript创建一个新的执行上下文,我们叫作本地执行上下文。 2这个本地执行上下文将有它自己的一组变量,这些……
thumbnail

0.1+0.2!=0.3?

在 JavaScript 中,如果判断0.1 + 0.2 === 0.3,结果是false,就像这样: console.log(0.1 + 0.2 === 0.3); // false console.log(0.1 + 0.2); // 0.30000……
thumbnail

ES6迭代器Iterator

迭代器 JavaScript 原有的表示“集合”的数据结构,主要是数组(Array)和对象(Object),ES6 又添加了Map和Set。这样就需要一种统一的接口机制,来处理所……