人生人山人海人来人往,自己自尊|

青柠i

园龄:4年3个月粉丝:11关注:1

09 2021 档案

HTTP状态码
摘要:1. 什么是HTTP状态码? HTTP状态码负责表示客户端HTTP请求的返回结果、标记服务器端的处理是否正常、通知出现的错误等工作。 状态码的职责:当客户端向服务器端发送请求时,描述返回的请求结果。接祖状态码,用户可以知道服务器端是正常处理了请求,还是出现了错误。 2. 有哪些状态码? 状态表的类别
45
0
0
Vue的异步渲染和 nextTick
摘要:1. 什么是异步渲染? **环境补充:**当数据在同步变化的时候,页面订阅的响应操作为什么不会与数据变化完全对应,而是在所有的数据变化操作做完之后,页面才会得到响应,完成页面渲染。 从一个例子体验一下异步渲染机制: import Vue from 'Vue' new Vue({ el: '#app'
247
0
0
2021-09-25 面经
摘要:面试经历 + 询问问题 自我介绍,你的技术栈; 谈谈深、浅拷贝; JS的运行机制; 你知道数组的reduce方法嘛?reduce的参数?可以干什么? 怎么手写reduce; 手写map; 防抖节流你了解嘛?怎么实现? 哪些操作会导致内存泄漏? 简单介绍一下 V8 引擎的垃圾回收机制? 你知道函数柯里
82
0
0
JS---Promise对象
摘要:1. 什么是 Promise 对象?什么是 Promises/A+ 规范? Promise 对象是异步编程的一种解决方案,最早由社区提出。Promises/A+ 规范是 JavaScript Promise 的标准,规定了一个 Promise 所必须具有的特性。 Promise 是一个构造函数,接收
118
0
0
JS--原型、原型链
摘要:1. 构造函数创建对象 我们先使用构造函数创建一个对象: function Person() { } var person = new Person(); person.name = 'Kevin'; console.log(person.name) // Kevin 在这个例子中,Person 就
80
0
2
JS---函数柯里化
摘要:函数柯里化 1. 什么是函数柯里化? 在数学和计算机科学中,柯里化是一种将使用多个参数的一个函数转换成一系列使用一个参数的函数的技术。 举例来说,一个接收3个参数的普通函数,在进行柯里化后,柯里化版本的函数接收一个参数并返回接收下一个参数的函数,该函数返回一个接收第三个参数的函数。最后一个函数在接收
54
0
0
JS---节流和防抖的实现
摘要:1. 函数防抖(debounce) 概念: 在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时。 实现: function debounce(fn, wait){ let timer = null; return function (){ let context = this;// 获
65
0
0
手写数组方法 reduce 和 map
摘要:1. 手写数组的 reduce 方法 Array.prototype.myReduce = function (fn, init) { if (typeof fn !== 'function') { throw new Error(`${fn} is not a function`) } // 当前
96
0
0
JS之深浅拷贝
摘要:1. 技巧性深浅拷贝 1.1 数组的浅拷贝 数组,我们可以利用数组的一些方法比如:slice、concat 返回一个新数组的特性来实现拷贝。 let arr = ['old', 1, true, null, undefined, { old: "old" }]; let new_arr = arr.
54
0
0
onChange和onInput事件的区别
摘要:1.onInput事件 onInput每次内容发生改变时触发,在用户输入时触发。 该事件在 <input> 或 <textarea> 元素的值发生改变时触发。 <!-- 例子 --> <input type="text" oninput="alert(123)" > 2.onChange事件 在元素
115
0
0
在vscode中配置ESLint
摘要:1.下载插件 2.打开settings.json 左下角设置 》然后右上角“打开设置(json)” 新增如下: "editor.codeActionsOnSave": { // ESLint 插件的配置 "source.fixAll": true }, // 开启保存自动格式化 "editor.fo
134
0
0
解决Vue中,使用@keyup.enter 会触发两次事件的问题
摘要:问题: 在vue中,使用表单form,如下: <div id="app2"> <form action="" @submit.prevent> enter后,控制台输出(esc清空):<br> <input type="text" v-model="value" @keyup.enter="ente
1796
0
0
JavaScript中~和~~操作符
摘要:1. ~操作符 ~ 是JavaScript中的操作符,按二进制位取反。 其实这涉及到原码、反码、补码的知识。 原码: 原码表示法的最高位为符号位,该位为0表示正数,1表示负数。其余位表示数的绝对值。 [+1]原 = 0000 0001 [-1]原 = 1000 0001 反码: 对于一个带符号的数来
264
0
0
树和二叉树
摘要:1. 树的基本概念 如图所示,一棵树最上面的点称为根节点,如果一个节点下面连接多个节点,那么该节点成为父节点,它下面的节点称为子节点,一个节点可以有0个、1个或更多节点,没有子节点的节点叫叶子节点。 1.1 二叉树: 是一种特殊的树,即子节点最多只有两个,这个限制可以使得写出高效的插入、删除、和查找
47
0
0
动态规划
摘要:动态规划 1. 爬楼梯问题 有一座高度是10级台阶的楼梯,从下往上走,每跨一步只能向上1级或者2级台阶。要求用程序来求出一共有多少种走法? 1.1 递归方法分析 由分析可知,假设我们只差最后一步就能走上第10级阶梯,这个时候一共有两种情况,因为每一步只允许走1级或2级阶梯, 因此分别为从8级阶梯和从
44
0
0
算法---数组排序
摘要:一、排序算法 1. 冒泡排序 冒泡排序的基本思想是,对相邻的元素进行两两比较,顺序相反则进行交换,这样,每一趟会将最小或最大的元素“浮”到顶端, 最终达到完全有序。 (来自网络,侵权删) 代码实现: function mySort(arr) { // 如果不是数组或者数组长度小于等于1,直接返回,不
62
0
0
计算机网络--面试题
摘要:1. Post 和 Get 的区别? Post 和 Get 是 HTTP 请求的两种方法。 (1)从应用场景上来说,GET 请求是一个幂等的请求,一般 Get 请求用于对服务器资源不会产生影响的场景,比如说请求一个网 页。而 Post 不是一个幂等的请求,一般用于对服务器资源会产生影响的情景。比如注
60
0
0
计算机网络五层协议知识
摘要:一、计算机网络体系结构 1. 应用层 应用层协议定义了应用进程间的交互和通信规则,不同主机的应用进程间如何相互传递报文,比如传递的报文的类型、格式、 有哪些字段等等。 1.1 HTTP 协议 概况: HTTP 是超文本传输协议,它定义了客户端和服务器之间交换报文的格式和方式,默认使用 80 端口。它
341
0
0
React项目启动时,报错createProxyMiddleware is not a function
摘要:报错如图: 原因: 使用代理中间件的原因。 新版本引用http-proxy-middleware形式改变了,以前是这样: const proxy = require("http-proxy-middleware") 或者这样 const { createProxyMiddleware } = req
515
0
0
配置craco,完成Antd按需导入组件样式和对less支持
摘要:使用@craco配置Antd Ant Design官网中高级设置提到使用craco进行高级设置。但没有给出具体用法,官网如下: 以下是我结合craco的GitHub官方网站,总结下来的使用方法: 1. 使用插件(简单) 1.1 安装依赖 #版本限制 npm i @craco/craco@5.5.0
746
0
0
Git
摘要:协同开发(版本控制器) 一、SVN SVN是==集中式服务器==,整个公司用的是同一台服务器 服务器端创建仓库 SVN客户端操作 关联服务器端:检出关联 提交:SVN commit 更新:SVN update 冲突:服务器只能基于一个版本进行升级(手动解决) 先更新,后提交 二、Git Git是==
57
0
0
JS面试题⑥
摘要:1. 如何封装一个 javascript 的类型判断函数? function getType(value) { // 判断数据是 null 的情况 if (value null) { return value + ""; } // 判断数据是引用类型的情况 if (typeof value "obj
38
0
0
JS面试⑤
摘要:1. js 中的深浅拷贝实现? 相关资料: // 浅拷贝的实现; function shallowCopy(object) { // 只拷贝对象 if (!object || typeof object !== "object") return; // 根据 object 的类型判断是新建一个数组还
39
0
0
JS面试④
摘要:1.谈一谈浏览器的缓存机制? 浏览器的缓存机制指的是通过在一段时间内保留已接收到的 web 资源的一个副本,如果在资源的有效时间内,发起了对这个资源的再一次请求,那么浏览器会直接使用缓存的副本,而不是向服务器发起请求。使用 web 缓存可以有效地提高页面的打开速度,减少不必要的网络带宽的消耗。 we
34
0
0
JS面试③正则表达式
摘要:1.简单入门 //正则表达式 let reg1=/abc/; let reg2=new RegExp("abc"); let str="cdadabcjh"; let str1="h"; let str2="cdadacjh"; console.log(reg1.test(str)); //true
185
0
0
JS面试---类型转换②
摘要:类型转换 1. 其他值到字符串的转换规则? 规范中定义了抽象操作 ToString ,它负责处理非字符串到字符串的强制类型转换。 (1)Null 和 Undefined 类型 ,null 转换为 "null",undefined 转换为 "undefined", (2)Boolean 类型,true
56
0
0
JS面试题①
摘要:1. 介绍 js 的基本数据类型。 js 一共有六种基本数据类型,分别是 Undefined、Null、Boolean、Number、String,还有在 ES6 中新增的 Symbol 和 ES10 中新增的 BigInt 类型。 Symbol 代表创建后独一无二且不可变的数据类型,它的出现我认为
38
0
0
面试题②
摘要:1.介绍一下标准的 CSS 的盒子模型?低版本 IE 的盒子模型(怪异盒模型)有什么不同的? 两者盒模型都是由四个部分组成的,分别是margin、border、padding和content。 标准盒模型和IE盒模型的区别在于设置width和height时,所对应的范围不同。标准盒模型的width和
40
0
0
面试总结①
摘要:1. 前端如何进行性能优化? 答: 前端性能优化主要是为了提高页面的加载速度,优化用户的访问体验。我认为可以从这些方面来进行优化。 第一个方面是页面的内容方面 (1)通过文件合并、css 雪碧图、使用 base64 等方式来减少 HTTP 请求数,避免过多的请求造成等待的情况。 (2)通过 DNS
36
0
0
扩展运算符理解
摘要:扩展运算符 1.合并数组 // 1.合并数组 let arr1 = [1, 2, 3]; let arr2 = ["c"]; let arr3 = ["d", "e"]; // es5 合并 console.log(arr1.concat(arr2, arr3));//(6) [1, 2, 3, "
43
0
0
Symbol的简单理解
摘要:Symbol 1.Symbol 的意义 ​ 之前我们的对象属性的数据类型都是字符串,没有其他的了。所以会导致属性名重复,导致属性值被覆盖的情况。比如,你使用了一个他人提供的对象,但又想为这个对象添加新的方法,在添加的操作就很容易覆盖了原有的方法。所以需要一个独一无二的数据类型来完成这个使命。所以Sy
215
0
0
ES6 解构赋值
摘要:es6对象解构 1.普通使用解构赋值 let obj = { name: "fct", age: 21 } // 普通使用解构赋值 var { name, age, hobby } = obj; console.log(name, age, hobby); //fct 21 undefined 2.
71
0
0
写一个函数去判断数据类型
摘要:判断数据类型 function judgeType(ele){ let res = typeof ele; if(res "object"){ // 短路表达式,第一个成立则返回第二个的值,第一个不成立,则返回第一个的值 Object.prototype.toString.call(ele) "[o
56
0
0
数组去重方法总结
摘要:数组去重 let arr = [{ name: "fct" }, { name: "fct" }, 1, 3, 4, 1, 4, 6]; // 1.Set let newArr = Array.from(new Set(arr)); // let newArr = [...new Set(arr)]
32
0
0
继承学习总结
摘要:继承 1.原型链继承: 让子类的原型对象指向父类的实例,当子类的实例找不到对应的方法时,就按原型链往上找。 function Parent(){ this.name = ["原型链继承"]; } // 原型上挂载方法 Parent.prototype.getName = function(){ co
56
0
0
认识 call,apply,bind,学会手写
摘要:1. call,apply,bind的理解 1.1 三者的区别 改变函数执行时的上下文,改变this的指向。 call,apply立刻执行 bind不是立刻执行,而是复制函数更改this //需求 求数组中最大的值 let arr = [2, 12, 4, 6, 8, 10]; console.lo
90
0
0
数组的扁平化练习
摘要:数组扁平化 数组扁平化:将多维数组转换为一维数组 题目1: 将数组[1, [2, [3, [4, 5]]], 6]转换为[1, 2, 3, 4, 5, 6] // 1.1 reduce方法 const arr = [1, [2, [3, [4, 5]]], 6]; let newArrFun = f
39
0
0
数组reduce方法的使用
摘要:1.reduce 求数组中数值之和 /** * 1. reduce 求和 */ let arr = [1, 2, 3, 4, 5]; // let sum = arr.reduce(function (pre, cur, index) { // console.log(pre, cur, index
64
0
0
JS---作用域问题
摘要:全局作用域和函数作用域,基本概念大家应该都知道,这次总结一下深层次的作用域 function fn(a, c) { console.log(a) // function a() { } var a = 123 console.log(a) // 123 console.log(c) // funct
40
0
0
JS中隐式转换面试问题总结
摘要:隐式转换 1.题目: //1. console.log(1 + "true"); console.log(1 + true); console.log(1 + undefined); console.log(1 + null); //2. console.log("2" > 10); console
104
0
0
深色
回顶
收起
点击右上角即可分享
微信分享提示