
前端
文章平均质量分 73
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 · 2724 阅读 · 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 评论 -
ES6笔记大全(一篇学完ES6)
一、Let和Constlet声明变量,可变const定义常量(实际指的是变量和的内存地址),不可变只能在其声明或定义的代码块内有效注:若区块中存在let或者const命令,则这个区块对这些变量和常量在一开始就行成封闭作用域,只要在声明之前使用就会报错(可能会出现暂时性死区)不能重复声明,否则报错(一)块级作用域闭包:JS中的变量是没有作用域时的一个临时解决方案块级作用域可以任意嵌套外层作用域不能访问内层作用域的变量内层作用域可以定义外层作用域的变量函数中的块级作用域e原创 2021-01-23 16:36:57 · 11634 阅读 · 0 评论 -
ES6笔记(纯干货)
一、Symbol新的数据类型,表示独一无二的值通过symbol函数生成let s=Symbol();对象属性名的两种表示方法:1、原有字符串表示。2、Symbol表示Symbol可接受一个字符串作为参数,表示对Symbol实例的描述,主要是为了在控制台输出,或者是转为字符串时比较容易区分如果Symbol的参数是一个对象,则会调用toString方法将其转换成为字符串,然后生成一个Symbol值Symbol值不能与其他类型的值进行运算,否则会报错Symbol值可以显式的转为字符串let原创 2021-01-21 00:34:32 · 364 阅读 · 0 评论 -
ES6笔记(一)
一、Let和Constlet声明变量,可变const定义常量(实际指的是变量和的内存地址),不可变只能在其声明或定义的代码块内有效注:若区块中存在let或者const命令,则这个区块对这些变量和常量在一开始就行成封闭作用域,只要在声明之前使用就会报错(可能会出现暂时性死区)不能重复声明,否则报错块级作用域闭包:JS中的变量是没有作用域时的一个临时解决方案块级作用域可以任意嵌套外层作用域不能访问内层作用域的变量内层作用域可以定义外层作用域的变量函数中的块级作用域es6中原创 2021-01-18 18:35:31 · 273 阅读 · 0 评论 -
vue生命周期
vue生命周期官方图解生命周期简单理解:从生到死,vue实例从创建到运行到销毁的过程复杂解释:vue实例从创建、初始化数据、编译模板、挂载DOM、渲染到更新到渲染、销毁等一系列过程生命周期方法vue实例从生到死伴随各种各样的事件,这些事件所触发的方法称为生命周期方法创建期间生命周期方法beforeCreate//执行时,表vue实例刚出生,还没有任何内容,data/methods未初始化created//执行时,表vue实例已经初始化好了部分内容,data/meth原创 2020-12-09 20:49:02 · 355 阅读 · 2 评论 -
JS隐式转换
一、隐式转换介绍在JS中运算符运算时,如果两边数据不统一,CPU无法计算时,编译器自动将运算符两边的数据做一个数据类型转换,转换成一样的数据进行运算,这种编译器自动转换的方式被称为隐式转换二、转换规则转换成string类型: + (字符串连接符)转换成number类型:++、--、+、-、*、/、%、==、===、!==、<=、>=、<、>(关系运算符)转换成Boolean类型:!(逻辑运算符)三、常见转换方法String()、toString()、Num原创 2020-12-09 19:27:31 · 725 阅读 · 0 评论 -
vue中V-指令(部分)(简明笔记)
一、v-once该指令后面不需要跟任何表达式改指令表示元素和组件值渲染一次,不会随着数据的概念而改变eg:<div id="a"> <h1 v-once>{{message}}</h2> </div><script> const a = new Vue(){ el:'#a', data:{ message:"哈哈哈哈哈!" } }</script&g原创 2020-10-23 22:49:59 · 781 阅读 · 0 评论 -
ES6简明笔记
一、let和const(一)let let声明变量,应该注意一下几点:变量不能重复声明,否则报错 与var不同,let声明的变量属于块级作用域 不存在变量提升 不影响作用域链(二)const const定义常量,应该注意一下几点:const定义常量一定要赋初始值 常量一般使用大写(潜规则) 常量的值不能修改 块级作用域 对于数组和对象的元素修改,不算做对常量的修改,不会报错二、变量解构赋值 在ES6中允许按照一定模式从数组和对象中提取值,对变量进行赋值,称为...原创 2020-10-14 15:59:11 · 584 阅读 · 0 评论