
JavaScript
Noria 107
道阻且长
展开
-
手撕前端面试十几种常考的手写题(一篇就够)
废话不多说,直接上代码防抖function JLDebounce(fn, deplay){ let timer = null; const _debounce = function(...args){ if(timer) clearInterval(timer); timer = setTimeout(() => { fn.apply(this, args); }, deplay); } return _debounce;}节流funct原创 2022-03-17 23:10:41 · 2720 阅读 · 0 评论 -
带你手撕Promise(全文无废话)
手撕Promise//定义状态const PROMISE_STATUS_PENDING = 'pending';const PROMISE_STATUS_FULFILLED = 'fulfilled';const PROMISE_STATUS_REJECTED = 'rejected';//工具函数function executorWithCatchError(execFn, value, resolve, reject){ try{ const result = execFn(v原创 2021-10-29 10:43:08 · 313 阅读 · 0 评论 -
手写call、apply、bind函数
call、apply、bind三者均能改变当前this指向三者的区别:三者的第一个参数均为新的this指向第二个参数:call和bind为参数列表,apply为参数数组只有bind返回一个函数手写实现call函数Function.prototype.TestCall = function(thisArg,arg){ //获取要执行的函数 let fn = this; //转换新this指向的类型 thisArg = (thisArg !== null && thisA原创 2021-10-22 12:47:28 · 299 阅读 · 0 评论 -
JavaScript柯里化
维基百科定义在计算机科学中,柯里化(英文Currying),又译为卡瑞化,或加里化是把接受多个参数的函数,变成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数,而且返回结果的新函数的技术柯里化声称 “ 如果你固定某些参数,你将得到接受余下参数的函数 ”总结只传递给函数一部分参数来调用它,让它返回一个函数来处理剩余的参数这个过程称之为柯里化原生实现柯里化function TestCurrying(fn){ function curried1(...args){原创 2021-10-24 12:56:29 · 181 阅读 · 0 评论 -
JS隐式转换
一、隐式转换介绍在JS中运算符运算时,如果两边数据不统一,CPU无法计算时,编译器自动将运算符两边的数据做一个数据类型转换,转换成一样的数据进行运算,这种编译器自动转换的方式被称为隐式转换二、转换规则转换成string类型: + (字符串连接符)转换成number类型:++、--、+、-、*、/、%、==、===、!==、<=、>=、<、>(关系运算符)转换成Boolean类型:!(逻辑运算符)三、常见转换方法String()、toString()、Num原创 2020-12-09 19:27:31 · 724 阅读 · 0 评论 -
JS数据结构与算法
一、数据(核心)(一)作用一个对象,用来存储一些值,用数字作为索引操作对象(二)常用方法引用数组对象语法:数组 [ 索引值 ]注:读取索引不存在,则返回undefined获取数组长度使用length属性获取数组长度语法:数组 . length常用数组方法. length()修改数组长度length大于原长,多余部分空出来;若length小于原长,多出部分被删除. push()向数组的末尾添加一或多个元素,并返回数组长度参数:要添加的元素.原创 2020-12-07 22:15:56 · 523 阅读 · 0 评论