前端基础
文章平均质量分 60
会飞的咩咩
学生
展开
-
js:Promise源码实现(function、原型)
① all:一个promise对象数组,只有当所有对象的状态都为resolved时,返回一个resolved的promise对象(由原数组的返回值组成);这两个函数,是我们在MyPromise中事先写好的,使用executor(resolve, reject),分配给MyPromise构造函数的两个对应参数。② race:一个promise对象数组,返回第一个执行完成的promise对象,无论成功与否。——catch相当于then的第二个方法,但是指下一个then,不是前一个then。原创 2022-10-08 21:07:48 · 825 阅读 · 0 评论 -
js:防抖、节流(闭包)
如果不使用闭包的话,可以把count变量声明在函数外部,变成一个全局函数。但是这样容易造成变量污染。(2)节流:一段时间内,只有第一次点击会生效,然后开始计时。类似于游戏中的技能cd。(1)防抖:类似于游戏中的回城,每触发一次,就重新读秒,直到读秒完成,才执行。是打通函数内部、外部的通道,使得外部可以。应用场景:百度搜索的输入框、词条预览。闭包会一直留存在内存中,除非手动清理。应用场景:点击按钮,发起后台请求。原创 2022-09-13 11:54:41 · 1246 阅读 · 0 评论 -
js:this指向
this指向箭头函数的上级作用域。原创 2022-08-22 16:44:25 · 73 阅读 · 1 评论 -
原型、原型链的理解
参考教程:https://www.bilibili.com/video/BV1Q64y1v7fW?p=1js中的继承,实现原理是基于原型的。明确以下几个概念:像上例中,teacher对象,可以到Teacher函数中找到 teach() 方法,到Person函数中找到 drink() 方法。为什么能够按照这样子的顺序来找呢?因为它们处于同一条原型链上!js中,万物皆对象,所以最终都会指向Object类...原创 2022-06-22 14:05:59 · 88 阅读 · 0 评论 -
HBuilder:安装使用Less
这个时候HBuilder就会报错啦,npm install失败解决方法找到hbuilder目录下的compile-less文件夹,手动执行 npm install怎么执行npm install呢?cmd(命令提示符),管理员身份运行(习惯了),切换到compile-less路径,npm install【我之前就设置好了淘宝镜像,所以下载会快一点】不重启不生效啊!!使得.less文件保存时,会自动生成对应的.css文件我之前找的教程,就是没有提到重启,搞了很久,记得重启!!...原创 2022-06-10 11:09:26 · 1149 阅读 · 0 评论 -
js:根据给定数组构造二叉树
刷题的时候经常会遇到二叉树的题,题目中给定的一般都是数组形式,可以在线调试。但是在本地编译器的话,需要转为二叉树形式才能进行代码调试。1、给定数组var root = [3,9,20,null,null,15,7];2、定义【树节点】类function TreeNode(val, level) { this.val = val; this.left = null; this.right = null;}3、构造二叉树function buildTree(val_list) {.原创 2022-05-19 17:42:01 · 810 阅读 · 0 评论 -
js实现:复杂度为O(n^2)的排序算法(冒泡排序、简单选择排序、直接插入排序)
参考博客:1、各种排序算法总结(全面)2、[算法总结] 十大排序算法(假设以下算法的排序方向均是:从小到大。数组元素的个数为:n)一、冒泡排序1、原理:——待排元素个数为n(1)先把n个中,最大的元素排到最后,待排元素个数为n-1。【一个元素的位置是确定的】(2)在把n-1个中,第二大的元素排到待排元素的最后,待排元素个数为n-2。【确定了两个元素的位置】……(n-1)重复以上步骤n-1趟,直到待排元素的个数为1。【确定了n-1个元素的位置,剩下那个元素就不用确定了吧?省了一趟循环】原创 2022-04-17 15:55:05 · 865 阅读 · 0 评论 -
js:原始数据类型vs引用数据类型 && 浅拷贝vs深拷贝
参考:JavaScript栈内存和堆内存区别一、数据类型1、原始数据类型(6种)内存大小固定,保存在栈内存中的简单数据段,如:Number、String、Boolean、Undefined、Null、Symbol2、引用数据类型内存大小不固定,保存在堆内存中的对象,如:Object、function、Array、Date、RegExp(正则表达式)不可以直接访问堆内存空间中的位置和操作堆内存空间。只能操作对象在栈内存中的引用地址。栈内存:容量小、速度快(线性存储)堆内存:容量大、速度慢(原创 2022-04-26 15:21:34 · 282 阅读 · 0 评论 -
js:判断数据类型的几种方法
参考文章:JavaScript中判断对象类型的几种方法总结根据要判断的数据对象,来选用合适的方法1、原始数据类型6种:number、string、boolean、undefined、null、symbol一、typeoflet str = 'hello';console.log(typeof str); // string2、对于部分引用数据类型:object、function,也可以使用typeoflet obj = {}console.log(typeof obj); // ob原创 2022-04-23 11:54:22 · 1872 阅读 · 0 评论 -
个人体会:前端为什么要体系化学习?
学习前端以来,一直都没有进行体系化学习,导致学的知识点很多,但没有形成闭环,从而导致了学习流于表面,并没有真正内化,也就谈不上真正理解。一、招聘要求很多公司的招聘要求都写了,要求有扎实的html、css、js基础。框架都是其次的,主要还是得基础好。怎么才算基础扎实呢,应该就是能够构成知识闭环,可以对照网上的面经(前端八股文),看看自己是否能够答出来。二、体系化学习的方式体系化学习是构成知识闭环的有效方法,刚开始学习的时候,我们会去看教学视频、看别人的博客文章,但这些好像都没有官方文档、权威书籍来的原创 2022-04-22 00:00:40 · 1360 阅读 · 0 评论 -
js基础:var、let、const三种类型变量的区别(变量提升、暂时性死区)
一、什么是变量提升?有两种说法:(1)变量声明会被提升到作用域的最前面,但有没有初始化呢?不在讨论范围内;(2)作用域内,在变量声明语句之前,使用该变量不会报错。如果是基于第一种定义,var、let、const都有变量提升如果是基于第二种定义,var有变量提升,而let、const没有二、3种类型变量1、var全局作用域、函数作用域(后者也叫局部作用域)全局作用域是在最外层函数以外,以下代码中,a是全局变量,b是局部变量<script> var a = "abc";原创 2022-04-14 16:58:32 · 606 阅读 · 0 评论