- 博客(10)
- 收藏
- 关注
原创 简单封装Promise,Promise.all,Promise.race
简单封装Promise,Promise.all,Promise.race1.封装Promiseclass MyPromise { constructor(fn){ //在未调用resolve活着reject之前使用then this.resolvedCallbacks = []; this.rejectedCallbacks = []; this.state = 'PENDING';//等待状态 this.val
2021-03-15 21:37:46
240
原创 react仿网易云音乐项目实战
react仿网易云音乐项目实战一.涉及技术:react(类组件,hook(重点)都有使用),redux,css in js(styled-compons库),react-router(react-router-dom,react-router-config),redux-thunk(异步请求),craco(配置文件),少量使用antDesign库等等二.项目介绍:用react对网易云音乐的主要页面进行构造。三.项目地址:https://github.com/ZhiHong-w/wy-music-
2021-02-19 14:05:26
712
原创 javascript“常量”对象(深度冻结)
javascript“常量”对象(深度冻结)先看下面一段代码: const obj = { m: 2 } console.log(obj.m); //2 obj.m = 3; console.log(obj.m); //3我们发现虽然obj对象我们定义的是一个常量,但是仍然可以修改里面m的值,这是因为const保证的并不是obj的值不变,而是obj指向的内存地址不变,我们修改m的值的时候obj的内存地址并没
2020-12-23 15:18:55
660
原创 js中的深拷贝,浅拷贝和展开符(b={...a})
一.区别1. 深拷贝:增加了一个指针并且申请了一个新的内存,使这个增加的指针指向这个新的内存2. 浅拷贝:只是增加了一个指针指向已存在的内存地址例如: const a={ name: "wang", age:18 } const b = a; b.age = 20; console.log(a); // {name:"wang",age:20} console
2020-10-28 20:56:49
1125
原创 js中的null,undefined的区别
js中的null,undefined的区别1. null表示没有对象,即该处不应该有值典型用法:(1) 作为函数的参数,表示该函数的参数不是对象。(2) 作为对象原型链的终点。2.undefined表示缺少值,即此处应该有一个值,但是还没有定义典型用法:(1)变量被声明了,但没有赋值时,就等于undefined。(2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。(3)对象没有赋值的属性,该属性的值为undefined。(4)函数没有返回值时,默认返回un
2020-10-22 16:26:55
166
原创 React中的diff算法
diff算法一.前言在React更新props或state时,会调用React中的render方法重新渲染一颗DOM树,React需要基于旧的DOM树和新的DOM树之间的差别来更新UI界面。如果一棵树参考另外一棵树进行完全比较更新,那么即使是最先进的算法,该算法的复杂程度为 O(n^3 ),其中 n 是树中元素的数量。如果在 React 中使用了该算法,那么展示 1000 个元素所需要执行的计算量将在十亿的量级范围。这个开销实在是太过高昂。React的渲染流程:React的更新过程:二.Di
2020-10-11 16:26:06
258
转载 react中的setState
setState的使用1.1. 为什么使用setState回到最早的案例,当点击一个 改变文本 的按钮时,修改界面显示的内容:案例的基础代码如下:import React, { Component } from 'react'export default class App extends Component { constructor(props) { super(props); this.state = { message: "Hello World"
2020-10-11 11:15:13
203
转载 JS中的this指向
this是JavaScript中的一个关键字,但是又一个相对比较特别的关键字,不像function、var、for、if这些关键字一样,可以很清楚的搞清楚它到底是如何使用的。this会在执行上下文中绑定一个对象,但是是根据什么条件绑定的呢?在不同的执行条件下会绑定不同的对象,这也是让人捉摸不定的地方。这一次,我们一起来彻底搞定this到底是如何绑定的吧!一. 理解this1.1. 为什么使用this在常见的编程语言中,几乎都有this这个关键字(Objective-C中使用的是self),但是Ja
2020-10-11 09:42:51
101
原创 JS中的call()和apply()方法
JS中的call()和apply()方法一.概念每个函数都包含两个非继承而来的方法:call()方法和apply()方法。相同点:这两个方法的作用是一样的。都是在特定的作用域中调用函数,等于设置函数体内this对象的值,以改变函数运行的作用域。一般来说,this总是指向调用某个方法的对象,但是使用call()和apply()方法时,就会改变this的指向。二.举例1.apply()方法 //例1 <script> window.numbe
2020-10-03 16:32:32
101
原创 声明式编程与命令式编程的区别
声明式编程与命令时编程的区别声明式编程:告诉“机器”你想要的是什么(what),让机器想出如何去做(how)。命令式编程:命令“机器”如何去做事情(how),这样不管你想要的是什么(what),它都会按照你的命令实现。举例:(实现求和操作)1.声明式编程:var numbers = [1,2,3,4,5]var total = numbers.reduce(function(sum, n) { return sum + n});console.log(total) //=> 1
2020-10-02 11:32:36
444
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人