- 博客(18)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 TypeScript-基础类型(es6的symbol类型)
基础类型我们使用 : 指定变量的类型,: 的前后有没有空格都可以。原始类型boolean类型boolean类型取值false、truelet bool1: booleanbool = falselet bool2: boolean = true使用构造函数 Boolean 创造的对象不是布尔值,事实上 new Boolean() 返回的是一个 Boolean 对象,直接调用 Boolean 也可以返回一个 boolean 类型;在 TypeScript 中,boolean 是 J
2020-08-13 16:44:40
411
原创 页面滚动条动画-h5实现
const scrollAnimation = (dom = document.documentElement,currentY: number,targetY: number,) => {let requestId:numberlet needScrollTop = targetY - currentY;let _currentY = currentY;const scrollAnimate =()=>{const dist = Math.ceil(needScrollTop
2021-07-07 15:51:59
574
原创 页面滚动条动画
const scrollAnimation = ( dom = document.documentElement, currentY: number, targetY: number,) => { // 获取当前位置方法 // const currentY = document.documentElement.scrollTop || document.body.scrollTop // 计算需要移动的距离 let needScrollTop = targetY - c
2021-07-06 17:37:43
145
原创 [‘1‘, ‘2‘, ‘3‘].map(parseInt)
返回[1,NaN,NaN][[1,2,3].map((num,index)=>parseInt(num,index))parseInt() 函数可解析一个字符串,并返回一个整数。parseInt(string, radix):string必需,要被解析的字符串;radix:可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。如果省略该参数或其值为0,则数字将以10进制数来解析。如果它以 “0x” 或 “0X” 开头,将以16进制数解析。如果该参数小于 2 或者大于 36,则 parseI.
2021-06-15 19:50:42
120
原创 防抖和节流使用es6以及自定义hook实现
什么是防抖和节流,他们的应用场景有哪些,如何实现防抖与节流都是前端优化的方案,使用后可以节省前端消耗的资源,针对不用的场景采用合适的方案防抖[debounce]是高频事件触发后,n秒内只执行一次,连续触发就会发生抖动,为了防止抖动会在连续触发中取消上一次事件,直达间隔时间达到n秒开始执行事件,总结来说就是防抖取连续触发的最后一次动作实现逻辑:闭包实现,自定义Hook实现//闭包实现逻辑:闭包中存储的变量不会被回收const debounce = (fn,time)=>{ let
2021-06-15 11:40:40
2757
原创 React Hooks简介
React Hooks简介Hook是React 16.8新增加的新特性,可以让开发者在不用编写class组件的情况下使用state以及其他的一些在类组件中才可以使用的属性。Hooks的特点完全可选的,hooks的使用是非必须的,可以根据实际的需要进行选择使用。Hooks是100%向后兼容的,并且不包含任何的破坏性的改动。React Hook已经在16.8的版本中发布了。使用Hooks的原因可以解决在组件之间复用状态逻辑很难的问题,使用 Hook 时不需要很深的组件树嵌套:Rea
2021-06-02 20:14:05
317
原创 dva中数据与props更新时机
dva中数据与props更新时机//第一种写法【存在问题】const demo (props)=>{ const tagPage = props.match.params.tagPage;// 直接从props中拿去路由上的参数 const { detail } = model// 从dva中取数据 useEffect(() => { console.log("tagPage",detail) //接口请求 }, [tagPage]);}
2021-04-28 11:04:58
477
1
原创 hook重新渲染后,变量运作
Warning: Maximum update depth exceeded. This can happen when a component calls setState inside useEffect, but useEffect either doesn’t have a dependency array, or one of the dependencies changes on every render.import React, {useState,useEffect} from 'rea
2021-04-28 11:03:13
1022
原创 滚动条样式修改
.demo{ //滚动条的轨道的类名 &::-webkit-scrollbar{ width: 8px; } //滚动条的轨道的类名 &::-webkit-scrollbar-track { background-color: #1f2150; border-radius: 5px; } //滚动条的滑块的类名 &::-webkit-scrollbar-thumb { background-color: #2d3075;
2021-04-12 11:14:12
68
原创 umi-手动路由配置
手动路由配置在配置路由参数的过程中,对应的component文件要写children参数,否则只会匹配一级路由,子路由内容不展示{ path: '/topic-insight', title: '战役指数', component: '@/pages/topic-insight/rank/index', routes: [ { path: '/topic-insight/rank/index',
2021-03-23 20:35:30
620
1
原创 函数调用方式
函数调用-this指向window//第一种function Person(name){ this.name = name//函数调用,this指向window}Person('abc')//函数调用,name属性被挂在在window上//第二种function fn(){ this.age = 18//函数调用,age属性被挂在在window上,this指向window}fn()console.log('age',age)//18//第三种var age = 18var p
2021-03-16 19:38:00
192
原创 62. 不同路径
/** * 解题思路:首先寻找满足条件状态子集之间的关系 * 和前一道题目相似: * 通用公式:dp[i][j]=dp[i-1][j]+grid[i][j-1] * 第一行与第一列单独处理*/function uniquePaths(m: number, n: number): number { if(m === 1 || n === 1){ return 1 } const dp = new Map() for(let i=2;i<=m;
2021-03-15 16:34:38
52
原创 二维数组赋值:TypeError: Cannot set property ‘0‘ of undefined
二维数组赋值:TypeError: Cannot set property ‘0’ of undefinedconst dp = []dp[0][0] = 0//以上写法错误,js对于多维数组只能层层定义赋值//以下写法正确const dp = []dp[0] = []dp[0][0] = 0//最好这样直接初始化const dp = new Array(5).fill([])...
2021-03-12 17:49:37
1544
原创 JavaScript
JavaScript高级程序设计第一章 JavaScript简介1.1 JavaScript简史为减少用户直接与服务器进行频繁的数据交换,这样会加重用户的负担,所以人们对客户端语言的需求越来越强烈。Netscape公司与Sum公司共同建立开发联盟,在发布时为了搭上媒体热炒Java的顺风车,所以名字由LiveScript改为JavaScript。JavaScript一直没有标准规范,所以欧洲计算机制造商协会(ECMA)定义了一种名为ECMAScript的新脚本语言的标准1.2 JavaScript
2021-03-10 20:23:30
478
原创 第二道20.有效的括号
第二道:20.有效的括号给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例 4:输入: “([)]”输出: false示例 5:输入: “{[]}”输出: true第一次解
2020-12-04 20:24:38
64
原创 第一道1. 两数之和
第一道:1. 两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]第一次解题思路:从数组中寻找两个数,使用map结构可以减少一层循环,直接从堆里面进行取数据,时间复杂度降低;map
2020-12-04 20:24:00
78
原创 valueOf方法、对象的隐式转换
valueOf方法JavaScript调用valueOf方法将对象转换为原始值。不同类型对象的valueOf()方法的返回值对象返回值Array返回数组对象本身。Boolean布尔值。Date存储的时间是从 1970 年 1 月 1 日午夜开始计的毫秒数 UTC。Function函数本身。Number数字值。Object对象本身。这是默认情况。在做加法时该对象被强制转换成数字时会调用其valueOf方法String字符串值。
2020-11-10 20:03:42
191
原创 改变this指向[call、apply、bind]以及使用场景
改变this指向[call、apply、bind]作用: call、apply都是改变this的作用域,在指定的作用域下进行函数调用;如果某个对象没有某种功能(也就是没有某个方法),而其他对象有,则可以通过call、apply方法实现方法的复用,下面具体讲解复用模式传参定义call的参数的顺序依次为this的值,函数接收的参数,apply方法接受一个包含多个参数的数组;bind的传参与call一样,但是他与call、apply不用的是,需要再执行一次call、apply、bind
2020-11-09 10:02:11
296
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人