- 博客(10)
- 收藏
- 关注
原创 react高阶组件hoc
什么是高阶组件 高阶组件其实就是一个函数,函数接收一个组件,函数执行结果返回一个组件 import React from 'react' export default function Hoc(Component:any): any { return props =>{ return ( <div> <h1>这个是高阶组件</h1> <Component
2021-04-27 10:54:13
152
原创 DOM事件对象的属性
事件对象event的属性 属性/方法 类型/说明 bubbles 布尔值,表示事件是否冒泡 cancelable 布尔值,表示是否可以取消事件的默认行为 currentTarget 元素,当前事件处理程序所在的元素 defaultPrevented 布尔值,true表示以及调用preventDefault方法 detail 整数,事件相关的其他信息 bubbles 布尔值,表示事件是否冒泡 eventPhase 整数,表示调用事件处理程序的阶段:1代表捕获阶段,2代表
2020-12-25 16:28:22
196
原创 Promise(1)
ECMAScript 6新增的引用类型Promise,可以通过new操作符实例化,创建Promise时候需要传入执行器函数作为参数。 Promise有三个状态:待定(pending),兑现(fulfiled),拒绝(rejected) 待定为Promise最初始的状态,在这个状态下Promise可以转换成兑现或者拒绝的状态,一旦发送改变,Promise的状态就再也不发生改变。 Promise的状态是私有的,不能直接通过JavaScript检测到,Promise的状态也不能被外部的JavaScript代码修改
2020-12-14 17:36:34
123
原创 JS继承的几种方式
继承 很多面向对象的语言都支持两种继承:接口继承和实现继承。前者知识继承方法签名,后者继承实际的方法。接口继承在ECMAScript中是不可能的,因为函数没有签名。实现继承是ECMAScript唯一支持的继承方式,主要通过原型链实现的 原型链继承 重温一下构造函数、原型和实例的关系:每个构造函数都有一个原型对象,原型有一个属性constructor属性指回构造函数,而实例有一个内部指针指向原型,如果原型是另一个类型的实例呢?那就意味着这个原型本身有一个内部指针指向另一个原型,相应的另一个原型也有一个指针指向
2020-12-02 11:14:24
157
原创 JS数组排列方法
数组有两个方法可以用来对元素重新排列 reverse() 顾名思义,将数组进行反向排列 比如 let a = [1,2,3,4,5] a.reverse(); alert(a)//5,4,3,2,1 sort() 默认情况下,sort()会按照升序重新排列数组,即小的在前,大的灾后,为此,sort()会在每一项上调用Sring()转型函数,然后比较字符串来决定顺序。即使数组的元素都是数值,也会把数组转换成字符串在比较。 因此排序会有些错误 var a = [ 0,1,5,10,15
2020-11-29 17:13:59
226
1
原创 JS数组的栈方法和队列方法
栈方法 pop()在数组末尾删除一个元素,并返回该元素 push()接受任意数量的参数并将它们添加到数组末尾,并返回该数组长度 队列方法 shift()在数组开头删除一个元素,并返回该元素 unshift() unshift()在数组开头添加任意多个值,然后返回数组长度 ...
2020-11-29 16:49:28
273
原创 var、let和const的区别
var var声明的变量会提升 console.log(a)//undefined var a = 0 以上代码相当于 var a console.log(a) a = 0 var可以声明同名变量 var声明的变量会成为包含它的函数的局部变量,比如使用var在一个函数定义一个变量,就意味着该变量在函数退出时销毁 let let声明的范围是块作用域,且在同一块中不能重复声明,因此嵌套使用相同的标识符不会报错。 对声明冗余报错不会因为混用let和var的影响,这两个关键字声明的并不是不同类型的变量,他们只
2020-11-28 10:28:14
256
原创 JS赋值、浅拷贝和深拷贝
赋值 赋值: 当我们把一个对象赋值给一个新的变量时,赋的其实是该对象在栈中的地址,而不是堆中的数据。 也就是两个对象指向同一个内储存空间,无论哪个对象发生改变,其实都是改变储存空间的内容,因此两个对象是联动的 <script> var person = { name : 'Tom', hobby:['学习','打球'] } console.log(person) var person1 = person person1.name =
2020-11-20 14:27:20
132
原创 JS知识点:闭包
什么是闭包 两种理解: 理解一:闭包是嵌套的内部函数 理解二:包含被引用变量的对象 产生闭包的条件 一、函数被嵌套在一个函数里 二、内部函数引用了外部函数的数据(变量/函数) 关键点 执行函数定义就会产生闭包(不需要调用内部函数) 外部函数被调用几次就会产生几个闭包 常见的闭包 1、将函数作为另一个函数的返回值 2、将函数作为实参传递给另一个函数调用 闭包的作用 1、使用函数内部的变量在函数执行完后,仍然存活在内存中(演唱了局部变量的生命周期) 2、在外部作用域中可以操作到函数内部的数据(变量/函数) 闭包
2020-11-19 23:07:16
304
原创 前端面试题:防抖节流
防抖节流的实现 防抖 当连续触发事件的时候,事件不会持续触发,当一定时间内没有触发事件后,事件函数才会执行。 实现防抖函数用到闭包。 以下是防抖函数` <input id="input"> var inp = document.getElementById("input") <script> //防抖函数的主体 //func是事件触发后调用的函数体 //time设定多久没有触发事件后开始调用事件函数 function debounce (func,time) { let time
2020-11-19 18:57:56
450
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅