摘要: 抽象比较 == 如果两边类型不同,会做隐式类型转换再判断 严格比较 如果两边类型不同,直接返回false Object.is 一般情况下结果和 相同,但是对+0,-0和NaN做了判断,Object.is认为+0和-0不相等,而NaN和NaN是相等的,这一点和严格相等不一样 阅读全文
posted @ 2022-06-21 17:18 IslandZzzz 阅读(27) 评论(0) 推荐(0) 编辑
摘要: (1)块级作用域:块作用域由 { }包括,let和const具有块级作用域,var不存在块级作用域。块级作用域解决了ES5中的两个问题: 内层变量可能覆盖外层变量 用来计数的循环变量泄露为全局变量 (2)变量提升:var存在变量提升,let和const不存在变量提升,即在变量只能在声明之后使用,否在 阅读全文
posted @ 2022-06-21 16:34 IslandZzzz 阅读(68) 评论(0) 推荐(0) 编辑
摘要: Map Map是JavaScript的一种数据结构,主要用于有序保存键值对,任何值都可以作为一个键或者值。 Map实现了iterator接口,遵循可迭代协议 1 特点 有序插入/输出 任意值都可以作为键 2 key 键的比较基于sameValueZero算法 在作为键的时候,NaN与NaN是相等的 阅读全文
posted @ 2022-06-21 16:07 IslandZzzz 阅读(366) 评论(1) 推荐(0) 编辑
摘要: interface和type都可以用作ts中限制变量的类型,它们有一些共同点 都能作为限制变量类型的方式 都能被class实现 但也有所区别 interface可以实现声明合并,type不行 interface A { a: string } interface A{ b:string } cons 阅读全文
posted @ 2022-06-21 11:12 IslandZzzz 阅读(230) 评论(0) 推荐(0) 编辑
摘要: type A = { a: number, b: number } type B = { a: number } // 交叉类型, 需要满足A和B的并集 const D: A & B = { a: 1, b: 2 } // 联合类型,需要满足A和B的交集 const E: A | B = { a: 阅读全文
posted @ 2022-06-21 11:07 IslandZzzz 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 定义useLazyLoad 思路: 判断图片在视口内就加载,即: 元素距离页面顶部的距离offsetTop < 滚动条高度scrollTop + 视口高clientHeight import { useCallback, useEffect, useState } from 'react' impo 阅读全文
posted @ 2022-06-21 00:20 IslandZzzz 阅读(956) 评论(0) 推荐(0) 编辑
摘要: 定义 import { useCallback, useEffect, useRef } from "react" export interface ThrottleRefType { fn: Function, timer?: NodeJS.Timeout } export type Thrott 阅读全文
posted @ 2022-06-21 00:14 IslandZzzz 阅读(905) 评论(0) 推荐(0) 编辑
摘要: 定义 import { useCallback, useEffect, useRef } from "react" export interface DebounceRefType { fn: Function, timer?: NodeJS.Timeout } export type Deboun 阅读全文
posted @ 2022-06-21 00:12 IslandZzzz 阅读(947) 评论(0) 推荐(0) 编辑
摘要: 问题 不能将类型“Timeout”分配给类型“number” Type 'Timeout' is not assignable to type 'number'. 解决方案 设置类型为NodeJS.Timeout 清除时使用delete ref.timer + clearTimeout export 阅读全文
posted @ 2022-06-21 00:05 IslandZzzz 阅读(3655) 评论(0) 推荐(0) 编辑