- 博客(29)
- 资源 (6)
- 收藏
- 关注
转载 函数柯里化
来源2022年最新前端面试题(大前端时代来临卷起来吧小伙子们..持续维护走到哪记到哪)_有两把刷子的博客-优快云博客_前端面试题1. 概念把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。 容易理解的概念:Currying概念其实很简单,只传递给函数一部分参数来调用它,让它返回一个函数去处理剩下的参数(主要是利用闭包实现的)。2. 特点:①接收单一参数,将更多的参数通过回调函数来搞定;...
2022-05-13 10:21:01
253
原创 作用域与作用域链
一、作用域作用域决定了变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期1. 理解就是一块"地盘", 一个代码段所在的区域它是静态的(相对于上下文对象), 在编写代码时就确定了2. 分类 (1)全局作用域拥有全局作用域的对象可以在代码的任何地方访问到,在js中一般有以下几种情形拥有全局作用域:最外层函数以及最外层变量 未定义直接赋值的变量(由于变量提升使之成为全局变量)function fn(){ ...
2022-05-12 20:56:59
1122
原创 JS执行上下文与执行上下文栈
一、变量提升与函数提升1. 变量声明提升通过var定义(声明)的变量, 在定义语句之前就可以访问到值: undefined2. 函数声明提升通过function声明的函数, 在之前就可以直接调用值: 函数定义(对象)3. 引出一个问题: 变量提升和函数提升是如何产生的?/* 面试题*/ var a = 3 function fn () { console.log(a) var ...
2022-05-11 19:55:20
208
转载 Promise限制并发请求数量
所谓并发请求,就是指在一个时间点多个请求同时执行。当并发的请求超过一定数量时,会造成网络堵塞,服务器压力大崩溃或者其他高并发问题,此时需要限制并发请求的数量。假如等待请求接口1000个,限制每次只能发出100个。即同一时刻最多有100个正在发送的请求。每当100个之中有一个请求完成时,则从待请求的接口(即剩余的900个待请求接口)中再取出一个发出。保证当前并发度仍旧为100。直至全部接口请求完成。...
2022-05-05 20:49:45
1801
原创 前端Promise
一、Promise的理解与使用抽象表达: Promise是ES6新增的一种语法,是异步编程的一种解决方案。(旧方案是单纯的使用回调函数)异步编程:fs文件操作、数据库操作、Ajax、定时器。具体表达:(1)从语法上说,promise是一种构造函数(2)从功能上说,promise 对象用来封装一个异步操作并可以获取其成功/失败的结果值。1. Promise的状态三种状态:pending(初始状态)f......
2022-05-05 20:01:10
15431
转载 JS实现缓存函数
参考:进阶篇(一)JS如何实现函数缓存_猿2048const memorize = function(fn) { const cache = {} // 存储缓存数据的对象 return function() { //扩展运算符还可以将字符串转为真正的数组。// 这里用到数组的扩展运算符 let args = [...arguments]; let _args=JSON.stringify(args)// 将参数作为cache的key
2022-05-04 09:08:18
1138
原创 JS中call、apply、bind
一、原生call、apply、bind的使用函数对象的方法,需要通过函数对象来调用。(1)相同:改变函数体内 this 的指向。(2)不同之处:call、apply的区别:接受参数的方式不一样。bind:不立即执行。而apply、call 立即执行。其中,bind的返回值也可以传入参数。let obj={ age:10, getAge:function (num1,n...
2022-05-03 21:51:35
149
转载 JS实现instanceof
作用:用来判断右边构造函数的原型对象,是否在左边实例对象的原型链上。实现步骤:1.获取类型的原型2.获取对象的原型3.循环判断类型的prototype是否在对象的原型链上function myInstanceof(obj,constructor) { let prototype = constructor.prototype; if (obj === null || obj === undefined || !obj || (typeof obj !== 'object' .
2022-05-03 21:41:37
577
原创 JS高阶函数
高阶函数,一个函数可以接收另一个函数作为参数,或者是返回一个函数。常见的高阶函数有map、reduce、filter、sort等。1. map()接受一个函数作为参数,不改变原来的数组,只是返回一个全新的数组。var arr = [1,2,3,4,5]var arr1 = arr.map(item=>item*item)console.log(arr1)//[1, 4, 9, 16, 25]2. reduce()...
2022-05-02 15:21:40
1381
原创 JS数据类型
一、分类(2大类)1. 基本(值)类型String: 任意字符串 Number: 任意的数字 boolean: true/false undefined: undefined null: null,使用typeof时返回object symbol (ECMAScript 2016新增)。 Symbol 是 基本数据类型 的一种,Symbol 对象是 Symbol原始值的封装 (en-US) 。 bigint,BigInt 是一种数字类型的数据,它可以表示任意精度格式的整数。2. 对象.
2022-05-02 09:40:34
230
原创 JS原型与原型链
一、原型1. 函数的prototype属性每个函数都有一个prototype属性, 它默认指向一个Object空对象(即称为: 原型对象) 原型对象中有一个属性constructor, 它指向函数对象2. 给原型对象添加属性(一般都是方法)作用: 函数的所有实例对象自动拥有原型中的属性(方法)3. 代码示例// 每个函数都有一个prototype属性, 它默认指向一个Object空对象(即称为: 原型对象)cons...
2022-05-01 21:46:37
181
原创 JS深浅拷贝
1.1 栈堆、基本数据类型、引用数据类型栈堆:存放数据的地方基本数据类型:number,string,boolean,null,undefined引用数据类型:function,Array,object基本数据类型保存在栈内存,引用类型保存在堆内存中。根本原因在于保存在栈内存的必须是大小固定的数据,引用类型的大小不固定,只能保存在堆内存中,但是可以把它的地址写在栈内存中以供访问。1.2 浅拷贝创建一个新对象,如果属性是一般数据类型,拷贝的就是基本类型的值,如果属性是引用数据类型,拷贝
2022-05-01 16:56:47
287
转载 JS防抖节流
1.防抖节流(参考防抖节流)1.1 防抖防抖,顾名思义,防止抖动。用于将用户的操作行为触发转换为程序行为触发,防止用户操作的结果抖动。一段时间内,事件在我们规定的间隔 n 秒内多次执行,回调只会执行一次。特点:等待某种操作停止后,加以间隔进行操作持续触发不执行不触发的一段时间之后再执行应用场景:mousemove 鼠标滑动事件防抖...
2022-05-01 15:11:01
532
原创 链表中快慢指针问题
一、找链表中间节点let slow = head;let fast = head;while(fast&&fast.next!=null){ slow=slow.next; fast = fast.next.next }return slow;//这样最后slow指针指向中间节点,或者如果有两个中间节点,slow指向第二个中间节点二、环形链表问题if(head==null||head.next==null) return false;let sl
2022-04-30 20:16:15
858
原创 JS判断一个变量是数组还是对象
一、instanceof用来判断右边构造函数的原型对象,是否在左边实例对象的原型链上。 instanceof 运算符用来测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性,意思就是该变量通过原型链上能否找到构造函数的prototype 属性。(引自判断一个变量是数组还是对象_Yucihent的博客-优快云博客_判断是数组还是对象)var arr = ['张三','李四','王五'];var obj = ......
2022-04-30 19:35:06
894
原创 ES6中Object.assign
Object.assign方法用来将源对象(source)的所有可枚举属性,复制到目标对象(target)。第一个参数是目标对象,后面的参数都是源对象。注:如果目标对象与源对象有同名属性,或多个源对象有同名属性,则后面的属性会覆盖前面的属性。var target = {a : 1}; //目标对象var source1 = {b : 2}; //源对象1var source2 = {c : 3}; //源对象2var source3 = {c : 4}; //源对象3Object.a
2021-09-17 10:43:06
91
原创 ES6中Map函数
Map常见的操作方法:set(key,val):添加某个值,返回Map结构本身。 get(key): 读取某个键,如果该键未知,则返回undefined delete(key): 删除某个键,返回一个布尔值,表示删除是否成功。 has(key): 返回一个布尔值,表示该值是否为Map的键。 clear() : 清除所有成员,没有返回值。参考es6中的Map函数_weixin_45847162的博客-优快云博客...
2021-09-17 10:22:58
365
原创 js中=、==、===区别
1. = 表示赋值;2. == 值相等:(1)如果两个值类型相同,再进行三个等号(===)的比较(2)如果两个值类型不同,也有可能相等,需根据以下规则进行类型转换在比较: 1)如果一个是null,一个是undefined,那么相等 2)如果一个是字符串,一个是数值,把字符串转换成数值之后再进行比较3. === 类型和值都相等: (1)如果类型不同,就一定不相等 (2)如果两个都是数值,并且是同一个值,那么相等;如果其中至少一个是NaN,那么不相等(判断一个值是否是..
2021-09-16 09:34:37
175
原创 webstorm快捷键
Ctrl + / : 单行注释Ctrl + S : 保存Ctrl + Z : 上一步Ctrl + D: 复制行Ctrl + X: 剪切/删除行Ctrl + G : 查找行Shift + F6 : 重命名Tab : 写出代码,自动生成<>以及相对应的</代码>Ctrl + R : 替换文本Ctrl + F : 查找文本Ctrl + Shift + C :拷贝文件路...
2018-03-07 17:46:35
163
原创 简易计算器
简易计算器初学c++时,小组做的,不过我就是个打酱油的#include#include#includeusing namespace std;class Jisuan //定义一个计算器的类{public: Jisuan() { sum = 0; f1 = 0; f2 = 0; fuhao = 0; }; //对计算器这个类中的数据进行重载构造,
2018-01-25 17:40:33
351
原创 Html中target使用规则
HTML 链接 - target 属性使用 target 属性定义被链接的文档在何处显示。 number1 number2_blank 浏览器在一个新的窗口载入目标文档。_self 对没有指定目标的标签是默认目标,使目标文档载入显示在相同的窗口。_parent 使文档载入父窗口或者包含来超链接引用的框架集。_
2018-01-24 09:36:18
760
原创 HTML 5 step 属性
HTML 5 step 属性step 属性规定输入字段的合法数字间隔(假如 step="1",则合法数字应该是 -1、0、1、2,以此类推)。step 属性可以与 max 以及 min 属性配合使用,以创建合法值的范围。举例:一小段含step属性的HTML代码:这小段代码就是限制输入的只能是数字,并且是0-1之间的小数,并设置小数点后面最多有两位小数注:step、
2018-01-22 16:04:08
3779
家族族谱 项目报告
2018-01-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人