![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
js
文章平均质量分 71
js的相关笔记
这里是慕戈
这个作者很懒,什么都没留下…
展开
-
字节面试遇到的一个超级复杂的输出题,前端人必看系列,搞定之后再也没有输出题可以难倒你
难点1:遇到Promise.resolve()/Promise.reject()就相当于平时使用时写在{}里面的内容,功能只有传参和改变promise对象的状态,如果在他们内部执行代码,也是同步代码。在原本的基础上改变了一点输出,这样的输出可能会更好理解一点,如果还是不好理解可以把这几个块分开,比如把errorFunc函数先注释一下,分块理解,就会好懂一点。难点3:await遇到promise函数的时候,如果resolve,后面的同步代码都会包裹在then(res => { 这里 })进入微队列等待执行。原创 2022-12-01 20:02:33 · 448 阅读 · 0 评论 -
手写reduce函数,处理好callback函数的传参以及init值,极短,面试前必看系列
重写reduce函数,重点在于最开始init值的选取,以及记得传递callback函数的四个参数。原创 2022-11-30 22:11:30 · 249 阅读 · 0 评论 -
超级好懂的手写flat函数!!!面试直接嘎嘎乱杀
实现办法就是利用循环(使用递归可以简单实现,即全部扁平化或者只扁平化一层,但是不好控制深度),相对来说,利用循环更好控制扁平化的深度。首先我们要知道原生的flat函数实现的是什么功能, 传递两个值,一个是用于扁平化的数组,一个是扁平化的深度。如果大家有更好的实现办法,欢迎讨论研究。原创 2022-11-30 20:41:03 · 321 阅读 · 0 评论 -
剑指OfferDay7 -- 大三上
在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。示例 1:输入:s = “abaccdeff”输出:‘b’示例 2:输入:s = “”输出:’ ’限制:0原创 2022-10-26 22:59:09 · 70 阅读 · 0 评论 -
剑指0fferDay6 -- 大三上
一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。链接:https://leetcode.cn/problems/zai-pai-xu-shu-zu-zhong-cha-zhao-shu-zi-lcof。链接:https://leetcode.cn/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof。链接:https://leetcode.cn/problems/que-shi-de-shu-zi-lcof。原创 2022-10-11 22:38:52 · 61 阅读 · 0 评论 -
剑指offerDay5 -- 大三上
字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。链接:https://leetcode.cn/problems/zuo-xuan-zhuan-zi-fu-chuan-lcof。链接:https://leetcode.cn/problems/ti-huan-kong-ge-lcof。请实现一个函数,把字符串 s 中的每个空格替换成"%20"。输入:s = “We are happy.”原创 2022-10-10 17:09:13 · 59 阅读 · 0 评论 -
剑指offerDay4 -- 大三上
在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。输入:head = [[7,null],[13,0],[11,4],[10,2],[1,0]]输出:[[7,null],[13,0],[11,4],[10,2],[1,0]]定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。输入:head = [[3,null],[3,0],[3,null]]输出:[[3,null],[3,0],[3,null]]原创 2022-10-09 22:57:30 · 59 阅读 · 0 评论 -
剑指OfferDay3 -- 大三上
定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。链接:https://leetcode.cn/problems/yong-liang-ge-zhan-shi-xian-dui-lie-lcof。链接:https://leetcode.cn/problems/bao-han-minhan-shu-de-zhan-lcof。--> 返回 -3.--> 返回 -2.输出:[null,null,3,-1,-1]原创 2022-10-08 21:20:33 · 64 阅读 · 0 评论 -
剑指OfferDay2 -- 大二下
给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次。请你找出并返回那个只出现了一次的元素。链接:https://leetcode.cn/problems/WGki4K。nums 中,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。输入:nums = [0,1,0,1,0,1,100]输入:nums = [2,2,3,2]这是一种题解,用的是哈希的方法来实现的。来源:力扣(LeetCode)原创 2022-10-08 16:59:57 · 351 阅读 · 0 评论 -
vue之v-show, v-for,v-model, 组件化 -- 大二上十三周十四周
目录vuev-showv-for组件keyv-modelinput:radioinput:checkboxselect值绑定修饰符组件化全局组件和局部组件父组件和子组件分离组件模板组件内部的data父子组件通信父传子子传父vue在vue中,他会使用虚拟dom来调用内部,当时v-if v-else的时候,他会复用一些已有的信息,如果不想被复用的话,可以给加上key值,只要两个的key值不一样,就不会复用v-show和v-if查不多,区别就是当判断条件是false的时候,v-if会直接删掉那个元素,而v原创 2021-12-05 20:14:11 · 1236 阅读 · 0 评论 -
栈 + 队列(简单版,用js的数组实现)+ 优先级队列 -- 大二上第四周
目录数据结构栈队列数据结构线性表可以用数组和链表来实现目前的栈和队列的封装都是基于数组(因为js里面对于数组的函数有很多,在开始会比较容易)栈function Stack() { this.items = []; Stack.prototype.push = function (element) { this.items.push(element); } Stack.prototype.pop = function () { r原创 2021-09-26 22:56:29 · 115 阅读 · 0 评论 -
axios + MySQL初始 + 懒加载(demo含代码) -- 大二上第三周
目录axiosMySQL懒加载axiosaxios用于浏览器和node.js的基于Promise的HTTP客户端,是同构的(可以在具有相同代码库的浏览器和node.js中运行)。在服务器端使用本地node.js的http模块,在客户端(浏览器)使用XMLHttpRequests执行get请求const axios = require('axios');axios.get('/user?ID=12345') .then(function (resquest) { con原创 2021-09-21 20:53:50 · 243 阅读 · 0 评论 -
本地存储 -- 大二上第二周
目录cookieLocalStorage, sessionStorageStorage事件一周小结cookiecookie是直接存储在浏览器中的一小串数据,是HTTP协议中的一部分最常见的用处之一就是身份验证(有时间可以做一个demo)document.cookie可以访问,如果要写入,这个不是数据属性,是访问器(getter/setter),对他的赋值会被特殊处理,就是只会更新提到的cookie,而不会涉及其他cookie这样将页面刷新或者重新打开数据都还在理论上讲cookie的名称和值可以原创 2021-09-12 15:50:34 · 158 阅读 · 1 评论 -
getting/setting + 继承的六种方法 + 考核总结 -- 大二上第一周
目录JS复习属性标志对象的访问器属性继承的六种方法1.构造函数式继承2.原型链式继承3.组合继承(原型链 + 构造函数)(不建议)4.原型式继承5.寄生式继承6.寄生组合式继承(最常用)考核总结JS复习属性标志属性值默认为true,一般情况下下面三个是不会出现的Object.defineProperties方法可以用来一次定义多个属性Object.getOwnPropertyDescriptors方法是一次获得所有的属性描述符对象的访问器属性对象有两种属性,一种是数据属性,另一种是访问器属性原创 2021-09-05 21:43:19 · 265 阅读 · 0 评论 -
静态资源和动态资源 + 路由 + 同步/异步API + defer和async --暑假Day12
目录静态资源和动态资源路由同步API,异步APIdefer 和 async静态资源和动态资源静态资源:服务器端不需要处理,可以直接响应给客户端的资源就是静态资源,例如css,js,html文件动态资源:相同的请求地址不同的响应资源静态文件访问的代码const http = require('http');const url = require('url');const path = require('path');const fs = require('fs');const mime =原创 2021-07-26 22:25:09 · 176 阅读 · 0 评论 -
gulp + 服务器 --暑假Day11
目录第三方模块Gulppackage.jsonNode.js中模块加载机制Node.jsNode.js全局对象global服务器url创建web服务器HTTP协议请求报文响应报文第三方模块Gulp基于node平台开发的前端构建工具机器代替手工,提高开发效率可以进行语法转换,项目上线时的文件压缩合并,公共文件抽离,修改文件浏览器会自动刷新gulp.src():获取任务要处理的文件gulp.dest():输出文件gulp.task():建立gulp任务第一个参数是任务的名称,第二个参数是任务的原创 2021-07-24 12:20:53 · 82 阅读 · 0 评论 -
async和await + 宏队列和微队列 + Node开发 -- 暑假Day10
目录async和awaitasyncawait宏队列和微队列Node开发Node.js中模块化开发规范系统模块系统模块fs文件操作系统模块path路径操作第三方模块async和awaitasync函数的返回值是promise对象promise对象的结果是由async函数的返回值决定的,和then的差不多await右侧表达式一般为promise对象,但也可以是其他值如果表达式是promise对象,await返回的结果 必须是promise成功的值,不是promise,返回值本身await必须写原创 2021-07-22 22:19:19 · 265 阅读 · 8 评论 -
Promise的关键问题 + 手写Promise -- 暑假Day9
Promise的几个关键问题如何改变promise的状态?调用resolve就是成功,调用reject就是失败,还有一个抛出异常,然后当前是pending就会改变为rejectedconst p = new Promise((resolve, reject) => { throw new Error('出错了');})console.log(p);[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sf53oMMA-1626920223490)(4.原创 2021-07-22 10:19:38 · 69 阅读 · 0 评论 -
回调函数 + ERROR + promise --暑假Day8
目录关于error错误类型错误处理错误对象promise状态基本使用promise的APIPromise的语法关于error错误类型Error: 所有错误的父类型EvalError:eval()的定义和使用不一致RangeError:数值越界也有可能会是死循环ReferenceError:非法或不能识别引用数值SyntaxError:发生语法解析错误TypeError:操作数类型错误URIError:URI处理函数使用不当错误处理捕获错误:try原创 2021-07-20 22:26:02 · 160 阅读 · 0 评论 -
解构赋值 + 扩展运算符 + string新增方法 + Map + Set -- 暑假Day7
目录解构赋值扩展运算符string的新增方法startsWith() 和 endsWith()repeat()方法MapMap的方法迭代Setset的方法迭代解构赋值分解数据结构,一一赋值es6中允许从数组中提取值,按照对应位置,给变量赋值,也可以对对象进行结构let arr = [1, 2, 3];let [a, b, c, d, e] = arr;console.log(a);//1console.log(b);//2console.log(c);//3console.log(d);/原创 2021-07-19 22:30:36 · 90 阅读 · 0 评论 -
前面内容的复习 + Object.defineProperty() + 函数(this,严格模式,高阶函数,闭包,递归,拷贝) -- 暑假Day6
目录函数进阶函数里面的this指向严格模式高阶函数闭包递归拷贝浅拷贝Object.defineProperty();里面有三个属性,这个方法用于定义对象中新属性或修改原有属性,第一个参数是想要修改的对象的对象名,第二个参数是对象的新的属性名或者原有的属性名,第三个参数是一个对象,书写属性的参数,第三个对象里面的值如下图中的第二个属性其实就是属性值可不可以被修改的意思函数进阶可以利用new Function(‘参数1’, ‘参数2’, ‘函数体’)来定义函数参数可以是多个 var f原创 2021-07-16 22:16:26 · 225 阅读 · 0 评论 -
主要是前面知识的补充,构造函数和原型 -- 暑假Day5
构造函数和原型在es6之前是用构造函数和原型来实现类的功能把共有属性放在构造函数里面,然后通过创建不同的对象来使用相同的功能构造函数里面的属性和方法被称之为成员,成员可以添加实例成员:构造函数内部通过this添加的成员,只能通过实例化的对象来访问,不能通过构造函数来访问静态成员:在构造函数上面直接添加的属性(不是通过this添加的),只能通过构造函数来访问构造函数存在浪费内存的缺陷为了避免这种因为方法的重复而导致的内存浪费,建议把共同方法直接放在原型对象里面实例对象的__proto__方法和原创 2021-07-15 22:51:29 · 59 阅读 · 0 评论 -
ES6初始,类和对象 -- 暑假Day4
ES6面向对象的特性封装性继承性多态性面向对象的思维特点:先把共有属性和行为封装成一个类 ,然后对类进行实例化,获取类的对象类和对象类是泛指的某一大类,对象是特指的某一个对象创建类用class声明一下,然后在下面new一下class Star { constructor(name){ this.name = name; }}var xxx = new Star('xxx');类里面有一个必须要有的函数,就是constructor函数(在生成原创 2021-07-14 21:16:58 · 55 阅读 · 0 评论 -
昨天的补充,包括constructor,inserAdjacentHTML,click,ondblclick
箭头函数没有super继承的 constructor 执行时,不会创建空对象,所以就不会将空对象赋值给this,但是正常创建的会进行这样的操作,子类在没有这种操作的时候,就会找向父类,所以必须调用父级的constructorondbclick()在短时间内双击同一元素后触发,现在已经很少使用了onclick是绑定事件,click是方法,会触发onclick事件select事件是只有textarea和文本类型的input元素中的文本被选中的时候会发生的事件...原创 2021-07-15 16:17:46 · 61 阅读 · 0 评论 -
XHTML + XML + AJAX --暑假day3
目录浅谈XHTML浅谈XML作用XML的树结构语法规则命名规则XMLHttpRequest 对象AJAX浅谈XHTMLXHTML就是更加严格的html,目标是取代html必须小写严格遵循嵌套规则严格符合语法XHTML元素必须要被关闭空标签应该在>的前面加上/,这样来关闭标签不能简写属性把HTML里面的name属性更换成了id在这个/的前面要添加一个空格,用来兼容浏览器<img src="picture.gif" id="picture1"原创 2021-07-13 22:45:34 · 113 阅读 · 0 评论 -
箭头函数 + Symbol -- 暑假Day2
目录箭头函数箭头函数与普通函数的区别1. 没有this2. 没有argumentsSymbol类型隐藏属性全局Symbol还有系统Symbol,但是目前没看到Debugger 命令,就是直接在函数内部写debugger,然后函数会停止在这里箭头函数箭头函数,创建函数的另一种简便方法 let test = (a, b) => a + b; let test = function (a, b) { return a + b; }上述两种表达的意思是一样的原创 2021-07-12 23:15:12 · 62 阅读 · 0 评论 -
函数 + 基本包装类 + global + Math对象 -- 暑期day1
目录归并方法(reduce,reduceRight)函数(Function)bind()方法基本包装类string类型Global对象URI编码方法eval()方法Math对象在往这些方法里面可以传入一个函数,函数拥有三个参数,分别是数组项的值,该项在数组中的位置,数组对象本身every()每一项都返回true的时候才会返回truefilter()将在给定函数返回true的每一项组成一个新数组,然后返回新数组(可以查询有些符合条件的数组项)forEach()没有返回值map(原创 2021-07-11 22:44:57 · 139 阅读 · 0 评论 -
改变this指向的三个方法的用法及区别
call,apply和bind作用:改变this的指向function Person(age) { this.age = age;}var obj = {};// Person();Person.call(obj, 18);// 这两种执行是一样的,准确来说,上面的那种执行实际上就是下面的那种执行// 在call传入obj会让Person里面的this全部替换成obj,相当于在最初的时候,Person里面的this全部指向window,现在都有了新的地址,就是obj的,从第二开始传原创 2021-07-11 22:41:08 · 3484 阅读 · 0 评论 -
用js实现轮播图 -- 第十六周
代码如下<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title&g原创 2021-06-17 21:19:19 · 76 阅读 · 0 评论 -
数组(Array)的方法 -- 大一下第十五周 + 第十六周
数组(Array)的方法toLocaleString()方法toLocaleString() 返回一个字符串表示数组中的元素。数组中的元素将使用各自的 toLocaleString 方法转成字符串,这些字符串将使用一个特定语言环境的字符串(例如一个逗号 “,”)隔开。语法:arr.toLocaleString([locales[,options]]);返回值和toString()一样shift()方法用于把数组第一个元素从中删除,并返回第一个元素的值语法:arrayObject.shif原创 2021-06-15 21:07:01 · 119 阅读 · 0 评论 -
object的部分属性和方法 + 逗号操作符 + label语句 + with + switch + 参数 + typeof和instanceof检测类型 -- 大一下第十五周
目录object的一部分属性和方法逗号操作符label语句with语句switch语句参数(原始值和引用值的区别)检测类型typeofinstanceof小记valueOf() 方法可以字符串返回数字。Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。Unicode包含ASCIIvisibility 属性,规定元素是否可见input的一些事件,和其他元素有点原创 2021-06-14 22:31:31 · 234 阅读 · 0 评论 -
逗号在js中的作用
逗号逗号操作符声明多个变量 var a = 1, b = 2, c = 3;用于赋值,结果是最后一个数 var a = (1, 2);//结果a = 2 var num = (1, 2, 3, 0);//结果num = 0建议再把逗号用于赋值的时候给式子添上小括号避免报错如果再有发现那就继续补充...原创 2021-06-09 15:34:48 · 345 阅读 · 0 评论 -
小知识点 + 贪吃蛇 -- 大一下第十四周
html里面的img元素只设宽不设高就会随着页面等比例缩放一般通过用创建的init方法来进行整体的初始化forEach()是for的精简版用于循环次数未知,循环次数难计算的情况下foreach不支持在循环中添加删除操作,因为在使用foreach循环的时候数组(集合)就已经被锁定不能被修改array.forEach(function(currentValue, index, arr), thisValue)splice()方法从数组中添加/删除项目,然后返回被删除的项目。该方法会改变原.原创 2021-06-06 20:56:57 · 202 阅读 · 2 评论 -
获取鼠标位置 + 变量声明 + 一部分零零散散的笔记 -- 大一下十二、十三周笔记
如何判断this的指向?谁调用函数,this就指向谁,如果没有明确谁调用,那this就指向windowelement.setAttribute(attribute, value) 改变 HTML 元素的属性值document.appendChild(element) 添加 HTML 元素querySelector根据css选择器选择元素,如果有多个相同类名,只选中第一个querySelectorAll是选中所有,以类数组的形式返回事件绑定的函数也可以通过调用事件来主动调用,不原创 2021-05-28 09:46:17 · 111 阅读 · 2 评论 -
命名规则总结
小驼峰命名法:第一个单词首字母小写,剩下单词的首字母大写,如:firstName大驼峰式命名规则:只要遇到单词,就首字母大写,使用构造函数来创建对象时,必须要用大驼峰式命名法来命名,如:FirstName-命名法:在每两个单词之间用-链接,这就是-命名法,如:first-name...原创 2021-05-13 21:19:23 · 279 阅读 · 2 评论 -
DOM + 日期对象 Date() + 事件 + JSON + 异步加载 + 时间线 + 正则表达式(RegExp)-- 大一下九、十周笔记
目录DOM基本操作节点的类型节点的属性遍历节点树遍历元素节点数DOM继承树函数的位置增插删除替换element节点的属性和方法属性方法日期对象 Date()js定时器DOM基本操作,一些边角知识脚本化CSS事件绑定事件事件处理程序的运行环境事件处理模型--事件冒泡、捕获取消事件冒泡和捕获事件对象事件委托事件分类JSON + 异步加载 + 时间线异步加载js加载时间线正则表达式(RegExp)DOMDOM – Document Object Model文档对象模型DOM定义了表示和修改文档所需要的方法,原创 2021-05-11 17:29:44 · 964 阅读 · 0 评论 -
克隆+数组+try...catch--大一下第八周笔记
目录克隆浅层克隆深层克隆数组定义数组数组的读写数组的常用方法改变原数组不能改变原数组类数组前面知识复习try...catch对一些错误信息的了解ES5严格模式es5严格模式一些要求克隆arguments表示实参列表,是一个数组浅层克隆实现一个demo,不过因为是原始值,所以只是值拷贝 var obj = { name : 'abc', age : 123, sex : 'female' }原创 2021-04-25 20:36:25 · 114 阅读 · 0 评论 -
原型+继承+this--大一下六、七周笔记
目录原型原型链call和apply继承命名空间属性的访问方法对象的枚举for in方法数组和对象的区别thisarguments.calleefunction.caller原型每一个函数都有原型,不止止是构造函数有原型定义:原型是function对象的一个属性,它定义了构造函数制造出的对象的共有祖先。通过该构造函数产生的对象,可以继承该原型的属性和方法。原型也是对象。是一个空对象 // Person.prototype = {} 是祖先,也就是原型 Person原创 2021-04-19 20:50:18 · 68 阅读 · 0 评论 -
递归+作用域+立即执行函数+闭包+对象+包装类--大一下四、五周笔记
目录递归js执行三部曲语法分析预编译四部曲解释执行作用域立即执行函数闭包闭包作用对象对象的创建方法构造函数内部原理包装类递归两个要求找规律找出口其实是比较耗时间的一种方法js执行三部曲语法分析就是最开始通篇扫描检查有无基础错误预编译函数声明整体提升,就是说,如果里面存在函数,编译器会把函数直接提在程序的最前面变量声明提升imply global 暗示全局变量:即任何变量,如果变量未经声明就赋值,此变量就为全局对象(window)所有一切声明的全局变量,全是win原创 2021-04-07 22:48:01 · 153 阅读 · 0 评论 -
大一下第三周-js入门第一周
目录一些该知道的东西基本语法运算操作符typeof 类型转换对象 objecttypeof类型转换显示类型转化隐示类型转化函数定义函数的方式参数一些该知道的东西主流浏览器 的 内核IE 是 tridentChrome 是 webkit\blinkFirefox 是 GeckoOpera 是 prestoSafari 是 webkit如何使用Java原创 2021-03-21 21:53:20 · 154 阅读 · 0 评论