JavaScript数据结构与算法:动态规划 动态规划(Dynamic Programming)是一种将一个问题分解成多个子问题,从而简化问题,提升效率的算法思想。它可以应用于各种算法领域,如最短路径问题、背包问题、字符串匹配问题等。在JavaScript中,动态规划可以用于优化算法性能,提高程序效率。动态规划的核心思想是将大问题分解成小问题,通过解决子问题来解决大问题。这种思想有时被称为“分治法”。重叠子问题和最优子结构。重叠子问题指的是在求解一个问题时,需要多次计算同样的子问题。最优子结构指的是问题的最优解可以由子问题的最优解递归得出。
node-sass与node版本对应(版本不对安装会报错) node-sass经常会安装报错,有的时候即使是切换到国内的npm源也不行,这时候就很大可能是node-sass和你电脑的node版本不对应:
React踩坑记录:Error: Minified React error #31; 根据react官网给出的提示,我们可以清晰的知道,这是由于我们代码书写的错误,导致react组件在render的时候,有一个孩子组件没有正确的返回react支持的数据结构,那么react组件支持render函数返回什么呢?很明显字符串、JSX和数组都可以,于是我们去排查代码。很明显,是react框架爆出来的错,遇到这种问题,别慌,先去看对应的介绍,先打开它提示的这个网址去看看啥情况,于是我们点开。的缩写,由于我们在这里返回了一个对象,所以导致了react框架报出了这个错误,所以,我们只需进行更改就好了。..
postcss简介 前言css预处理器在目前的开发中是很受欢迎的,但是它们也有一些缺点。在今天的介绍中,我们将探讨postcss的优势以及它是如何工作的,还有其一些丰富而且实用的插件。css预处理器的价值和局限性大多数CSS开发人员都非常熟悉css预处理器,像sass、less、stylus等,以及伴随着这些预处理器出现的一些概念,比如file partials, nesting, variables 和 mixins等。随着css的发展,预处理器的一些功能正在渐渐的被原生css所实现,但是还有大量非常实用的功能对于开发
react+typescript正确的开发姿势之正确使用hooks之useReducer 在react + typescript项目中正确使用useReducer我们在Home页面增加一个组件Counter,用来保存一个数值count,来记录点击按钮的次数,如下:// Counter.tsximport React, { useReducer } from 'react'type StateType = { count: number;}type ActionType = { type: string; payload: number;}const
react+typescript正确的开发姿势之正确使用hooks之useState 写在前面要想在react + typescript 项目中正确的使用 hooks ,请务必掌握泛型的使用,关于泛型的讲解,我在上一篇博文中详细的进行了介绍,如果你还不了解 typescript 中的泛型请看上一篇:正确认识typescript中的泛型。如何结合typescript正确使用hooks在react中使用函数式组件,难免会使用到hooks,hooks赋予了函数式组件可以像 class 组件那样拥有状态的能力,那么如何结合typescript正确的使用hooks呢?在react + type
正确认识typescript中的泛型 泛型介绍软件工程中,我们不仅要创建一致的定义良好的API,同时也要考虑可重用性。 组件不仅能够支持当前的数据类型,同时也能支持未来的数据类型,这在创建大型系统时为你提供了十分灵活的功能。在像C#和Java这样的语言中,可以使用泛型来创建可重用的组件,一个组件可以支持多种类型的数据。 这样用户就可以以自己的数据类型来使用组件。设想这样一个场景,你想设计一个函数,函数有两个参数,并且这两个参数的类型是相同的,也就是说第一个参数如果传string类型,那么要求第二个参数也必须是string类型的,如果第一个
react+typescript正确的开发姿势之函数式组件 函数式组件声明使用typescript正确的声明react函数式组件是通常有三种:直接声明、React.FC 和 PropsWithChildren。直接声明直接声明函数式组件的code如下:import React from 'react';type HomePropsType = { name: string; age: number; children?: React.ReactNode;}const Home = (props: HomePropsType) =
JavaScript原型之对象属性设置与屏蔽 前言JavaScript和面向类的语言不同,在ES6出现之前,它其实并没有类来作为对象的抽象模式,所以在描述对象中不免会遇到一个特别的词语,没错就是原型prototype,今天我们讨论的主角也是它,今天我们就来讨论JavaScript原型中的冰山一角。三道面试题让我们先来看三道面试题,慢慢的打开你的视野:先列出三道题目都会用到的对象objProto:const objProto = {}// 题目一objProto.a = 23const obj = Object.create(objPr
JavaScript快速排序 定义快速排序(英语:Quicksort),又称分区交换排序(partition-exchange sort),简称快排,一种排序算法,最早由东尼·霍尔提出。在平均状况下,排序 n 个项目要 O(nlogn) 次比较。在最坏状况下则需要 O(n^2) 次比较,但这种状况并不常见。事实上,快速排序 (nlogn) 通常明显比其他算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地达成。算法逻辑思想快速排序使用分治法(Divide and conquer)策略来把一个序列(lis
JavaScript归并排序 定义归并排序(英语:Merge sort,或mergesort),是创建在归并操作上的一种有效的排序算法,效率为O(nlogn)。1945年由约翰·冯·诺伊曼首次提出。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用,且各层分治递归可以同时进行。算法逻辑思想采用分治法:分割:递归地把当前序列平均分割成两半。集成:在保持元素顺序的同时将上一步得到的子序列集成到一起(归并)。归并操作归并操作(merge),也叫归并算法,指的是将两个已经排序的序列合并成一个序列的操
Javascript错误捕获 Javascript错误捕获同步代码错误捕获try,carchPromise错误捕获unhandledrejection总结同步代码错误捕获try,carch try { const a = 1, b = 2 let c = a + b } catch(err) { console.error(err) }Promise错误捕获unhandledrejection new Promise((resolve, reject) => { reject(3) }) win
手写new 想要实现new操作符,首先得知道new操作符干了哪些事情:第一、new操作符会创建一个对象并返回,且此对象的__proto__等于此函数的原型prototype(这里需要注意__proto__和prototype的区别和联系,原型prototype是函数才有的,务必记住,而__proto__可以理解为对象的某个属性,此属性指向对象的构造函数的prototype,是不是很绕。举个例子);比如,new函数A创建了对象a,则a.proto = A.prototype,代码如下:function A(age