坚持,写博客,记笔记 😀, 加油!递归实现/** * 实现对象或数组的深拷贝 * @param {*} origin 被拷贝的对象或者数组 * @param {*} target 目标对象或者数组 * @returns 返回拷贝后的对象 */ function deepClone (origin, target = Array.isArray(origin) ? [] : {}) { if (!origin || typeof origin !== "object") { ret
6月23日 阅读 11 点赞 2 评论 0 阅读 11 点赞 2 评论 0
首先我们需要明确 JavaScript 中有两种数据类型:基本数据类型和引用数据类型两种类型的根本区别是:在内存中的存储位置不同。
6月23日 阅读 8 点赞 1 评论 0 阅读 8 点赞 1 评论 0
一个经典的返回斐波那契数列生成问题,我们求斐波那契数列的第10项时,可以轻松求出 fibonacci(10) = 55, 可是当我们要求斐波那契数列的第1000项时, fibonacci(1000) 却没那么容易求出来甚至于报错。原因就是递归的每一次调用都会推一个栈帧到调用栈中,当调用层数越来越多,调用栈中的栈帧越来越多,将调用栈都给塞满了,也就出现了堆栈溢出的报错。
6月21日 阅读 14 点赞 1 评论 0 阅读 14 点赞 1 评论 0
ECMAScript 6 新增的代理与反射为开发者提供了拦截并向基本操作(如属性查找、赋值、枚举、函数调用等)嵌入额外行为的能力。
6月21日 阅读 12 点赞 1 评论 0 阅读 12 点赞 1 评论 0
HTML 标签的类型可分为三种:块级标签,行内标签,内联块状标签。
6月19日 阅读 7 点赞 1 评论 0 阅读 7 点赞 1 评论 0
可能有很多人像我一样,在接触了类似于import * from "./1.js"和const a = require('./1.js')这两种模块导入方式之后产生了和我一样的疑惑:它们是啥?他们又有啥区别?
6月19日 阅读 10 点赞 1 评论 0 阅读 10 点赞 1 评论 0
axios是一个轻量的 HTTP 客户端,它基于XMLHttpRequest服务来执行 HTTP 请求,支持丰富的配置,支持 Promise,支持浏览器端和 Node.js 端。
6月18日 阅读 13 点赞 1 评论 0 阅读 13 点赞 1 评论 0
要明白这三个函数的存在意义是什么?答案是改变函数执行时的上下文,再具体一点就是改变函数运行时的this指向。
6月18日 阅读 5 点赞 0 评论 0 阅读 5 点赞 0 评论 0
promise是一个异步问题同步化的解决方案。 Promise`对象用于表示一个异步操作的最终完成 (或失败)及其结果值。
6月18日 阅读 7 点赞 0 评论 0 阅读 7 点赞 0 评论 0
防抖和节流都是为了解决短时间内大量触发某函数而导致的性能问题,比如触发频率过高导致的响应速度跟不上触发频率,出现延迟,假死或卡顿的现象。
6月18日 阅读 14 点赞 2 评论 0 阅读 14 点赞 2 评论 0