![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
javascript
ALKEN ABBY
这个作者很懒,什么都没留下…
展开
-
优秀代码汇总学习(一)
优秀代码汇总学习(一)原创 2023-04-10 22:30:00 · 289 阅读 · 0 评论 -
React 新老架构对比(React 架构演进史)
React 新老架构对比(React 架构演进史)原创 2022-12-13 15:45:00 · 284 阅读 · 0 评论 -
React 的设计理念(React 哲学)
React 的设计理念(React 哲学)原创 2022-12-12 22:08:58 · 511 阅读 · 0 评论 -
对象数组去重
对象数组去重原创 2022-11-23 15:26:57 · 206 阅读 · 0 评论 -
hooks 内部结构
hooks 内部结构原创 2022-10-31 20:48:04 · 522 阅读 · 0 评论 -
Fiber的理解
Fiber的理解原创 2022-10-21 14:39:44 · 1206 阅读 · 0 评论 -
js代码在V8中怎么执行的
js代码在V8中怎么执行的原创 2022-10-02 10:19:31 · 299 阅读 · 0 评论 -
NaN 的 注意点
NaN 的 注意点原创 2022-09-30 21:30:39 · 470 阅读 · 0 评论 -
requestAnimationFrame 和 setTimeout 的区别
requestAnimationFrame 和 setTimeout 的区别原创 2022-09-18 11:22:19 · 1402 阅读 · 0 评论 -
浏览器的 5 种 Observer
浏览器的 5 种 Observer原创 2022-09-18 10:38:56 · 522 阅读 · 0 评论 -
Object.create(null) 和 {} 的区别
Object.create(null) 和 {} 的区别原创 2022-09-03 11:31:12 · 163 阅读 · 0 评论 -
千位分隔数
千位分隔数原创 2022-09-02 20:07:48 · 106 阅读 · 0 评论 -
etag生成原理
etag生成原理原创 2022-08-26 08:29:33 · 546 阅读 · 0 评论 -
对称加密和非对称加密区别
对称加密和非对称加密区别原创 2022-08-19 11:34:12 · 317 阅读 · 0 评论 -
rem和em的区别
rem和em的区别原创 2022-08-19 11:26:28 · 155 阅读 · 0 评论 -
数组去重各种方法实现
数组去重原创 2022-08-19 10:24:57 · 75 阅读 · 0 评论 -
react-router V6 版本的使用(自己封装了 Redirect,使用 useRoute 等)
react-router V6 版本的使用(自己封装了 Redirect等)IndexRouter.js 使用useRoute 做全局路由的搭建,包括嵌套路由,路由重定向,路由拦截(自己封装),路由懒加载(做了一个简单的封装)等import React from 'react';import {useRoutes} from "react-router-dom";import LazyLoad from "./Lazyload";import NewsSandBox from "../views/原创 2022-05-21 16:52:21 · 2485 阅读 · 0 评论 -
React 中 受控组件和非受控组件区别
React 中 受控组件和非受控组件区别广义的来说:react 组件的数据渲染是否被调用者传递的 props 完全控制,控制则为受控组件,否则为非受控组件非受控组件:非受控组件将真实数据存在 DOM 节点中,所以在使用非受控组件时,有时候反而更容易同时集成React 和 非 React 代码,如果不介意代码美观性,并且希望快速编写代码,使用非受控组件往往可以减少你的代码量,否则,就使用受控组件非受控方式能简化代码,比较适用于就在本组件的数据处理,如果要关联到要把数据传出去的话,其中不会再次调用 s原创 2022-05-11 09:52:28 · 675 阅读 · 0 评论 -
react中 state 和 props 的区别总结
react中 state 和 props 的区别总结联想法:注意:状态就类比一下自己的状态,调节状态,属性就是别人赋予给你的 ,不是很方便的改动原创 2022-05-10 21:28:32 · 170 阅读 · 0 评论 -
setState 的同步和异步执行
setState 的同步和异步执行规则:setState 处在同步的逻辑中,异步更新状态,异步更新真实 DOMsetState 处在异步的逻辑中,同步更新状态,同步更新真实DOM什么叫处在异步逻辑中?比如说 setState 函数被包裹在 setTimeout 函数里面执行,这就是其中一种情况代码实现:import React, {Component} from 'react';import BetterScroll from 'better-scroll'class BetterScr原创 2022-05-10 19:21:51 · 305 阅读 · 0 评论 -
react 报错记录
react 踩坑记录报错:Uncaught TypeError: Cannot read properties of undefined (reading ‘forEach’)at Object.injectIntoGlobalHook (react-refresh-runtime.development.js:488:1)at Object…/node_modules/@pmmmwh/react-refresh-webpack-plugin/client/ReactRefreshEntry.js原创 2022-05-09 09:25:53 · 827 阅读 · 0 评论 -
react demo1 TodoList
TodoList实现增加和删除:import React, {Component} from 'react';class TodoList extends Component { //使用方法2: myRef = React.createRef(); state = { list: [1, 2, 3] } render() { return ( <div> <input type="text" re原创 2022-05-10 14:07:44 · 169 阅读 · 0 评论 -
react 生命周期函数浅析
react 生命周期函数浅析图片示意:代码描述: // 生命周期函数 // 在组件即将被挂载到页面的时刻自动执行 componentWillMount() { console.log('componentWillMount') }render(){ console.log('render')} // 组件第一次被挂载到页面之后,自动被执行 componentDidMount() { console.log('componentDidMount')原创 2022-05-09 15:15:24 · 249 阅读 · 0 评论 -
react 与 vue 的双向数据绑定的对比实现
react 与 vue 的双向数据绑定的实现区别react 实现双向数据绑定import React, {Component, Fragment} from "react";class TodoList extends Component { constructor(props) { super(props); // react 定义组件的数据就需要定义在 state 里面 this.state = { inputValue: '哈哈哈', lis原创 2022-05-08 16:11:19 · 362 阅读 · 0 评论 -
发布订阅者模式和观察者模式的区别
发布订阅者模式和观察者模式的区别1.什么是观察者模式定义:当对象之间存在一对多的依赖关系时,其中一个对象的状态发生改变,所有依赖它的对象都会收到通知,这就是观察者模式。在观察者模式中,只有两种主体:目标对象 (`Object`) 和 观察者 (`Observer`)。目标对象 `Subject`:- 维护观察者列表 `observerList`- 定义添加观察者的方法- 当自身发生变化后,通过调用自己的 `notify` 方法依次通知每个观察者执行 `update` 方法观察者 Obs原创 2022-04-04 10:47:08 · 5082 阅读 · 0 评论 -
闭包的总结
闭包总结1. 闭包是什么闭包是指有权访问另外一个函数作用域中的变量的函数2. 形成闭包的原因内部的函数存在外部作用域的引用就会导致闭包内部的函数引用了外部作用域的变量就会导致闭包3. 闭包变量存储的位置闭包中的变量存储的位置是堆内存。4. 闭包的作用保护函数的私有变量不受外部的干扰。形成不销毁的栈内存。保存,把一些函数内的值保存下来。闭包可以实现方法和属性的私有化5. 闭包经典使用场景防抖节流for循环经典面试题立即执行函数return 回一个函数函数作为参数柯里化实现原创 2022-03-11 15:54:51 · 318 阅读 · 0 评论 -
【无标题】js的基本数据类型和引用数据类型有什么区别
js的基本数据类型和引用数据类型有什么区别参考红宝书的答案:一.保存方式不同访问变量有按值访问和按引用访问基本数据类型是按值访问的,可以直接操作保存在变量里的实际值引用类型的不允许直接访问内存中的位置,即不能直接操作对象的内存空间,实际上是在操作对象的引用而不是实际的对象,引用类型的值是按引用访问的不能给基本类型值添加属性或方法,可以给引用类型值添加属性和方法二.复制变量值方式不同若从一个变量向另外一个变量复制基本类型的值,会在变量对象上创建一个新值,然后把该值复制到为新变量分配的位置上原创 2022-03-10 21:41:59 · 160 阅读 · 0 评论 -
new 操作都做了什么
new 操作都做了什么一. 原理其实,new关键字内部干了如下三件事(已知构造函数为constructor):. 1.创建一个空对象,并使该空对象的 proto==constructor.prototype; 2.执行构造函数,并将this指向刚刚创建的新对象; 3.返回新对象;/** new产生一个新对象; 拿到传入的参数中的第一个参数,即构造函数Constructor; 执行构造函数原创 2022-03-07 16:36:13 · 1656 阅读 · 0 评论 -
两种盒模型的区别
标准盒模型与怪异盒模型1.标准盒模型标准盒模型是 box-sizing: content-box , 默认值,他的width就是content的width,盒子总宽度=margin+padding+width+border,盒子的大小会以内容优先,自动扩展,子元素可以撑开父元素,就像气球一样,大小随内容的变化而变化Content-box图像:2.怪异盒模型怪异盒模型:box-sizing: border-box,也是 IE盒子,父元素的盒模型确定,子元素无法撑开父元素的盒模型可以理解为现实生原创 2022-03-07 16:30:15 · 991 阅读 · 0 评论 -
Promise串行的六种方法
Promise串行的六种方法<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0">原创 2022-02-27 15:41:37 · 2759 阅读 · 0 评论 -
js面试题
js面试题const func1 = x => x; const func2 = x => { x }; const func3 = x => ({ x }); console.log(func1(1));//1 console.log(func2(1));//undefined ,加一个 {},是表示增加一个 块级作用域 console.log(func3(1));//{x:1} 使用 ({x}) 表示原创 2022-02-26 20:58:39 · 133 阅读 · 0 评论 -
js面试题---实现一个函数
题目要求//实现一个函数:function get(){ //内容...}//const obj = { selector: { to: { toutiao: 'FE coder' } }, target: [1, 2, { name: 'byted' }] };// 运行代码 get(obj, 'selector.to.toutiao', 'target[0]', 'target[2].name')// 输出结果:// ['FE coder', 1, 'byted']实现了两种方法原创 2022-02-26 19:54:18 · 167 阅读 · 0 评论 -
前端模块化及比较
前端模块化:CommonJS AMD CMD ES6模块化的开发方式可以提高代码复用率,方便进行代码的管理。通常一个文件就是一个模块,有自己的作用域,只向外暴露特定的变量和函数。目前流行的js模块化规范有CommonJS、AMD、CMD以及ES6的模块系统。CommonJSNode.js是commonJS规范的主要实践者,用module.exports定义当前模块对外输出的接口(不推荐直接用exports),用require加载模块。commonJS用同步的方式加载模块。在服务端,模块文件原创 2022-02-26 14:05:58 · 161 阅读 · 0 评论 -
实现一个repeat函数
实现一个repeat函数实现一个repeat函数,返回一个方法每隔3s执行一次alert函数,共执行四次采用了闭包和async,await的实现方式function repeat() { return async function () { for (let i = 0; i < 4; i++) { await new Promise((resolve, reject) => {原创 2022-02-26 10:15:04 · 354 阅读 · 0 评论 -
剑指 Offer 04. 二维数组中的查找
二维数组中的查找/** * @param {number[][]} matrix * @param {number} target * @return {boolean} */// 这道题我想到了,但是起始点没有找对// 面试题如果太简单的话,一定是让你降低时间复杂度//这道题从 右上方 开始进行遍历,很聪明,找对了规律,但是我找错了初始点var findNumberIn2DArray = function (matrix, target) { //注意下面这三个还必须按照顺原创 2021-12-02 23:26:04 · 83 阅读 · 0 评论 -
剑指 Offer 03. 数组中重复的数字
数组中重复的数字/** * @param {number[]} nums * @return {number} */var findRepeatNumber = function (nums) { let hash=new Map(); for(let i=0;i<nums.length;i++){ if(hash.has(nums[i])){ return nums[i]; } hash.set(num原创 2021-12-02 23:25:09 · 258 阅读 · 0 评论 -
剑指Offer 10- I. 斐波那契数列(js版本)
斐波那契数列(js版本)/** * @param {number} n * @return {number} */// 字节要求 logn,去你的,矩阵快速幂// https://leetcode-cn.com/problems/fei-bo-na-qi-shu-lie-lcof/solution/fei-bo-na-qi-shu-lie-by-leetcode-solutio-hbss/var fib = function(n) { if (n < 2) {原创 2021-12-02 23:24:27 · 647 阅读 · 0 评论 -
力扣试题--26. 删除有序数组中的重复项(js版本)
删除有序数组中的重复项(js版本)/** * @param {number[]} nums * @return {number} */// 官方的这个思路挺好的// 但是这个双指针和之前的不一样,是同向的,只是快慢问题// 这道题坑很多,需要考虑完全// https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/solution/shan-chu-pai-xu-shu-zu-zhong-de-zhong-fu-原创 2021-12-02 23:22:59 · 540 阅读 · 0 评论 -
力扣试题--最长回文子串(js版本)
最长回文子串(js版本)/** * @param {string} s * @return {string} */// 这道题的动态规划只有那么强了,状态转移方程只能说非常的牛逼,想不到呀var longestPalindrome = function (s) { let len = s.length; if (len < 2) { return s; } let maxlen = 1; let begin = 0; /原创 2021-12-02 23:21:53 · 438 阅读 · 0 评论 -
力扣试题--验证回文串(js版本)
验证回文串(js版本)/** * @param {string} s * @return {boolean} */var isPalindrome = function (s) { s = s.toLowerCase(); let s1 = ""; // 对数组里面的东西进行处理,处理干净 for (let i = 0; i < s.length; i++) { if (((s[i] >= 'a' && s[i] <原创 2021-12-02 23:20:37 · 615 阅读 · 0 评论