- 博客(64)
- 收藏
- 关注
原创 面试题 关于开发环境
关于开发环境面试官想通过开发环境了解候选人的实际工作情况开发环境的工具,能体现工作出得效率会以聊天形式为主,不会问具体的问题开发环境Git基础什么是版本管理版本管理是一种记录文件变化的方式,以便将来查阅特定版本的文件内容。人为维护文档版本的问题文档数量多且命名不清晰导致文档版本混乱每次编辑文档需要复制,不方便多人同时编辑同一个文档,容易产生覆盖Git 是什么Git是一个版本管理控制系统(缩写VCS),它可以在任何时间点,将文档的状态作为更新记录保存起来,也可以在任
2021-03-28 19:15:58
529
原创 面试题 HTTP 面试题
http 面试题前端工程师开发界面需要用后端的接口,提交/获取数据 —— http 协议要求事先掌握好 ajax什么是 httpHTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。它基于TCP/IP通信协议来传递数据(HTML文件,图片文件,查询结果等)HTTP协议是一个属于应用层的面向对象的协议,由于其简洁、快速的方式,适用于分布式超媒体系统。它
2021-03-25 20:44:50
1807
原创 面试题 存储
存储题目知识点解答题目描述 coolkie localStorage sessionStorage 的区别容量API 易用性是否跟随 http 请求发送出去相同点:都存储在客户端不同点:(1).存储大小cookie数据大小不能超过4k。sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。(2).有效时间localStorage 存储持久数据,浏览器关闭后数据不丢失除非主动删除数
2021-03-24 21:08:19
502
原创 面试题 ajax
ajax题目手写一个简易的 ajax跨域的常用实现方式手写一个简易的 ajaxAjax一般是通过XMLHttpRequest对象来是实现的let request =new XMLHttpRequest() //声明一个XMLHttpRequest对象常用的方法和属性XMLHttpRequest对象的setRequestHeader方法语法:request.setRequestHeader(key,value) //设置请求头XMLHttpRequest对象的open方法语
2021-03-24 08:19:19
138
原创 面试题 事件
事件题目知识点解答题目编写一个通用的事件监听函数描述事件冒泡的流程无限下拉的图片列表,如何监听每个图片的点击编写一个通用的事件监听函数 var Event = { //页面加载完成后 readyEvent:function(fn){ if(fn == null){ fn = document; } var oldonload = window.onload; if(typeof window.onload != 'functi
2021-03-22 20:53:28
232
1
原创 面试题 DOM 操作
题目融合识别浏览器的类型分析拆解 url 各个部分知识点navigatorscreenlocationhistoryW3C标准没有规定任何js基础相关的东西(变量、原型、作用域、异步);定义了用于浏览器中js操作页面的API和全局变量1、DOM1.1、DOM本质DOM可理解为:浏览器把拿到的html代码,结构化一个浏览器能识别并且js可操作的一个模型######1.2、DOM节点操作var div1 = document.getElementById('di
2021-03-21 10:56:18
375
原创 面试题 从 JS 基础知识到 JS Wed API
常说的js(浏览器执行的js)包含两个部分:一、js基础知识(ECMA262标准)1、变量类型和计算1 .1、值类型(存的是值)var a = 100;var b = a;a = 200;console.log(a); //200console.log(b); //1001.2、引用类型(存的是地址)var a = {age: 25};var b = a;b.age = 100;console.log(a.age); //100console.log(b.age);
2021-03-21 10:33:48
164
原创 面试题 JS 异步 ---- 进阶
JS 异步 — 进阶之前讲解 JS 异步,在于初阶的应用本章在于 JS 异步的原理和进阶对初学者有点难度,尽量深入浅出思维导图本章主要内容event looppromise 进阶async / await微任务 / 宏任务先看几个面试题问答请描述 event loop (事件循环 / 事件轮询)的机制,可画图123微任务是ES6语法规定的宏任务是有浏览器灰顶的4什么是宏任务和微任务,两者有是区别?1.宏任务(MacroTask),微任务(Mic
2021-03-19 21:51:49
198
原创 面试题 异步 和 单线程
异步和单线程题目知识点解答题目同步和异步的区别是什么?手写用 promise 接在一张图片前端使用异步场景有哪些?知识点单线程和异步应用场景callback hell 和 Peomise单线程和异步JS 是单线程语言,只能同时做一件事儿浏览器和 nodejs 以支持 JS 启动进程,如 Web WorkerJS 和 DOM 渲染共同一个线程,因为 JS 可修改 DOM 结构遇到等待(网路请求,定时任务)不能卡住需要异步毁掉 callback 函数形式
2021-03-18 21:19:46
150
原创 面试题 作用域和闭包
作用域 和 闭包题目知识点解答题目this 的不同应用场景,如何取值?分类: 1:当作普通函数被调用时候,this指向的对象是window this 的指向一般理解为谁调用,this指向谁比如:这里的a()这里相当于window.a();function a(){ var user = "candy"; console.log(this,user); // undefined console.log(this); // window};a();下一个例子:
2021-03-17 21:34:24
188
原创 前段框架及项目面试的介绍 五
Vue 面试真题演练觉得是面试中的网上收集整理的面试题热门技术和知识点v-show 和 v-if 的区别v-show 通过 CSS display 控制显示和隐藏v-if 组件真正的渲染和销毁,而不是显示和隐藏频繁切换显示状态用 v-show ,否则用 v-if为何在 v-for 中用 key必须用key,切不能是 index 和 randomdiff 算法中通过 tag 和 key 来判断,是否是 sameNode减少渲染次数 , 提升渲染能力描述 Vue 组件生命周期
2021-03-16 21:49:12
129
原创 前段框架及项目面试的介绍 四
Vue 原理(大厂必考)面试为何会考察原理面试中如何考察?以何种方式Vue 原理包括那些面试为何会考察原理,有用不到知其然知其所以然 —— 各行业通用的道理了解原理,才能应用的更好(竞争激烈,择优录取)大厂造轮子(有钱有资源,业务定制,技术KPI)面试如何考察 Vue 原理考察重点,而不是考察细节。掌握好 2/8 原则和使用相关的原理,例如 vdom 模本渲染整体流程是否全面?热门技术是否有深度Vue 原理组件化响应式vdom 和 diff模本编译渲染过程
2021-03-15 21:54:19
116
原创 前段框架及项目面试的介绍 三
Vue 使用一、基本使用,组件使用 ———— 常用,必须会的二、高级特性 ——— 不常用, 但体现深度三、Vuex 和 Vue-router 使用自己去看文档不行吗?行,但这种是一种最低效的方式文档是一个备忘录,是给会用的人查阅的,并不是入门的教程文档全面冗长且细节过多,不能突出面试考点回顾之前上篇 Vue 面试题v-show 和 v-if 的区别为何 v-for 中药用 key描述 Vue 组件生命周期 (有父子组件的情况)Vue 组件如何通讯描述组件渲染和更新的过程双
2021-03-14 20:10:45
120
原创 前段框架及项目面试的介绍 二
首先我们先看几个面试题先看几个面试题,自己去思考一下,自己能回答上多少,在去对比一下面试题的答案思考如何应对这些面试题、以及所以的面试一、Vue 面试题1、v-sho 和 v-if 的区别是什么区别:(1)、当条件为真的时候 没有区别 当条件为假的时候 v-if是不创建元素 v-show 渲染元素然后隐藏掉(2)、v-if更适合数据的筛选和初始渲染, v-show更适合元素的切换2、为何 v-for 中要用 key(1)、vue中列表循环需加:key=“唯一标识” 唯一标识尽量是it
2021-03-13 12:35:39
204
原创 前段框架及项目面试的介绍 一
前段框架及项目面试 Vue Reace Webpack通过看这个视频让我知道面试都要准备那些面试题,面试题的准备不要太繁杂了,如果是你自学准备的话,是需要你有足够的时间,需要你有自学能力,需要你有毅力,要是通过这个视频的可以让快速的掌握面试题的技巧。主要分为两点:1.全面全面的知识体系大量的面试真题完整的技术面试流程2.高效直击面试考点和重点,无需自己去扒那些详细的文档会深入浅出讲解原理,无需自己去阅读那些源码,原理是不等于源码的会解读项目的设计的思路,提炼项目的经验需要主意:1
2021-03-13 10:59:00
455
原创 Vue之性能优化篇
Vue之性能优化篇小编这一期跟大家讲一下关于优化Vue性能相关的知识,Vue众所周知,是一个轻量级的框架,源码仅仅为72.9KB,但是也有它自己的缺点,就是首屏加载会比较慢,因为和传统项目相比,Vue会在首屏加载的时候加载出所有的组件和插件,并且向服务器请求数据,导致可能有时候首屏加载的时间就会到4、5秒的样子。但是这样做很明显是在挑战用户的耐心,按照惯例,最好能把加载时间控制在1秒左右。接下来小编讲一下Vue性能优化的两个个方向。一.源码优化1、代码模块化,咱们可以把很多常用的地方封装成
2021-01-19 19:00:04
124
原创 Promise与async的使用
promise一、什么是Promise?我们用Promise来解决什么问题?Promise 是异步编程的一种解决方案: 从语法上讲,promise是一个对象,从它可以获取异步操作的消息;从本意上讲,它是承诺,承诺它过一段时间会给你一个结果。 promise有三种状态: pending(等待态),fulfiled(成功态),rejected(失败态);状态一旦改变,就不会再变。创造promise实例后,它会立即执行为什么有Promises这个东西同步的方式写异步的代码,用来解决回调地狱问题。此外
2021-01-16 20:11:07
1191
原创 rem 针对设计稿宽度,设计rem调试比例
rem 针对设计稿宽度,设计rem调试比例一, 网易适配方法屏幕宽度/设计稿rem宽度=页面动态font-size值 (function(doc, win) { var docEl = doc.documentElement; resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize'; recalc = function() { var clientWidth =
2021-01-14 19:45:21
959
原创 js单线程,事件循环,微任务宏任务
JavaScript 事件循环(含宏任务与微任务)JavaScript 特点JavaScript 是单线程非阻塞的一门语言。单线程意味着:JavaScript 代码在执行的时候只有一个主线程去处理所有的任务,即同一时间只能做一件事情。非阻塞则表示:当执行到一项异步任务的时候,主线程会挂起当前这个异步任务,然后在异步任务返回结果的时候再跟进一定的规则去执行相应的回调。思考: 为什么 JavaScript 要设计成单线程?单线程是必要的,也是 Javascript 这门语言的基石,原因之一在其最初
2021-01-14 19:29:16
126
原创 js单线程
js 单线程一、为什么JavaScript是单线程?JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。那么,为什么JavaScript不能有多个线程呢?这样能提高效率啊。JavaScript的单线程,与它的用途有关。作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM。这决定了它只能是单线程,否则会带来很复杂的同步问题。比如,假定JavaScript同时有两个线程,一个线程在某个DOM节点上添加内容,另一个线程删除了这个节点,这时浏览器应该
2021-01-14 19:15:22
141
原创 深拷贝 与 浅拷贝 原型 类型校验
前提:深拷贝和浅拷贝是只针对Object和Array这样的引用数据类型的。1. 堆栈内存具体看另一篇博客数据类型、堆栈存储2. 浅拷贝与深拷贝深拷贝和浅拷贝的示意图大致如下:浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存。但深拷贝会另外创造一个一模一样的对象,新对象跟原对象不共享内存,修改新对象不会改到原对象。赋值和浅拷贝的区别赋值:把一个对象赋值给一个新的变量时,赋的其实是该对象的在栈中的地址,而不是堆中的数据。也就是两个对象指向的是同一个存储空
2021-01-13 19:39:52
149
原创 Github 的使用,小型服务器,查询项目,协同开发,以及sourcetree使用
Github在版本控制系统中,大约90%的操作都是在本地仓库中进行的:暂存,提交,查看状态或者历史记录等等。除此之外,如果仅仅只有你一个人在这个项目里工作,你永远没有机会需要设置一个远程仓库。只有当你需要和你的开发团队共享数据时,设置一个远程仓库才有意义。你可以把它想象成一个 “文件管理服务器”,利用这个服务器可以与开发团队的其他成员进行数据交换。注册访问github首页,点击 Sign up 连接。(注册)填写用户名、邮箱地址、GitHub登陆密码选择计划填写 GitHub 问题验
2021-01-13 19:11:40
201
原创 vuex 是什么 ?以及核心和使用
vuex是什么Vuex是一个用来管理组件之间通信的插件,它是一个专为【vue.js】应用程序开发的状态管理模式,它解决了组件之间同一状态的共享问题,它能够更好地在组件外部管理状态。什么是Vuex?Vuex是一个专为vue.js应用程序开发的状态管理模式。它解决了组件之间同一状态的共享问题。因为它采用的是集中式存储管理应用的所有组件状态,所以组件就可以和store通讯了。其实Vuex就是用来管理组件之间通信的一个插件为什么需要Vuex?当多个组件依赖于同一个状态时,由于多层嵌套使得传参的
2021-01-12 17:21:17
437
原创 git的理解
什么是版本管理版本管理是一种记录文件变化的方式,以便将来查阅特定版本的文件内容人为维护文档版本的问题文档数量多且命名不清晰导致文档版本混乱每次编辑文档需要复制,不方便多人同时编辑同一个文档,容易产生覆盖Git 是什么Git是一个版本管理控制系统(缩写VCS),它可以在任何时间点,将文档的状态作为更新记录保存起来,也可以在任何时间点,将更新记录恢复回来。Git 安装下载地址在安装的过程中,所有选项使用默认值即可。Git 基本工作流程git仓库暂存区工作目录
2021-01-12 16:57:04
110
原创 冒泡排序和递归
冒泡排序1、比较相邻的两个元素,如果前一个比后一个大,则交换位置。2、比较完第一轮的时候,最后一个元素是最大的元素。3、这时候最后一个元素是最大的,所以最后一个元素就不需要参与比较大小。实现原理数组中有n个数,比较每相邻两个数,如果前者大于后者,就把两个数交换位置;这样一来,第一轮就可以选出一个最大的数放在最后面;那么经过n-1(数组的 length - 1) 轮,就完成了所有数的排序。好的,我们先来实现找数组中的最大数,并把他放到数组最后。var arr = [3,4,1,2];//
2021-01-11 17:59:23
616
原创 Promise === async、await === es6中的generator函数详解
Promise当面试官问你:1.什么是promise?2.你对promise的理解?3.promise用过吗?4.什么是promise1.解决地狱回调2.可以链式调用3.有三种状态。4.promise有哪些API.5.应用场景:封装ajax,axios的get,post封装,微信小程序中封装wx.request(),uniapp开发中uni.request().名词约定一般来讲,有以下的名词约定:promise(首字母小写)对象指的是“Promise实例对象”Pr
2020-12-31 14:23:45
308
原创 箭头函数与普通函数区别 == es6中的class与继承
箭头函数与普通函数区别一、箭头函数是匿名函数,不能作为构造函数,不能使用new箭头函数相当于匿名函数,并且简化了函数定义。箭头函数有两种格式:一种只包含一个表达式,连{ … }和return都省略掉。还有一种可以包含多条语句,这时候就不能省略{ … }和return。不能作为构造函数,不能使用new二、箭头函数内没有arguments,可以用展开运算符…解决三、箭头函数的this,始终指向父级上下文(箭头函数的this取决于定义位置父级的上下文,跟使用位置没关系,普通函数this指向调用的
2020-12-15 17:14:15
527
1
原创 cookie、localStorage、sessionStorage区别 == JavaScript中let、const、var 的区别 == es6解构赋值
cookie、localStorage、sessionStorage区别CookieCookie设计初衷是用来和服务器通讯,而不是本地存储,他只是被‘借用’到本地存储。如下图,每次http请求,header都携带cookie;localStorage、sessionStorage在HTML5中,新加入了一个localStorage/sessionStorage特性,这个特性主要是用来作为本地存储来使用的,解决了cookie存储空间不足的问题(cookie中每条cookie的存储空间为4k),
2020-12-12 18:21:08
210
原创 原生Ajax的创建过程 == jsonp原理
原生Ajax的创建过程1、创建xhr 核心对象var xhr=new XMLHttpRequest();2、调用open 准备发送参数一:请求方式参数二: 请求地址参数三:true异步,false 同步xhr.open('post','http://www.baidu.com/api/search',true)3、如果是post请求,必须设置请求头。xhr.setRequestHeader('Content-Type', 'application/x-www-
2020-12-09 20:40:11
125
原创 事件绑定、事件传播、事件捕获、事件冒泡、自定义事件 == js中事件委托 == 封装一个通用的事件绑定函数
事件绑定、事件传播、事件捕获、事件冒泡、自定义事件DOM事件三种级别DOM0级事件DOM0 级时间分两种,一是直接在标签内直接添加执行语句,二是定义执行函数。<input type="text" id="test"><input type="button" value="button" onclick="alert(document.getElementById('test').value)"><script> document.getEl
2020-12-08 18:53:44
149
原创 DOM面试题 ==
DOM面试题DOMJavaScript操作网页的接口,全称为“文档对象模型(Document Object Model)。 有这几个概念:文档、元素、节点整个文档是一个文档节点每个标签是一个元素节点包含在元素中的文本是文本节点元素上的属性是属性节点文档中的注释是注释节点DOM本质 DOM树:DOM树是结构,树是由DOM元素和属性节点组成的,DOM的本质是把html结构化成js可以识别的树模型;有了树模型,就有了层级结构,层级结构是指元素和元素之间的关系父子,兄弟。下图为htm
2020-12-08 18:37:47
1542
原创 js之继承 ==== js设计模式
js之继承前言继承在js中占有非常重要的地位,那么在js中有很多中继承的方式,不过每一种继承方式都有优缺点。下面就列举几种继承的方式。实现继承首先需要一个父类,在js中实际上是没有类的概念,在es6中class虽然很像类,但实际上只是es5上语法糖而已function People(name){ //属性 this.name = name || 'Annie' //实例方法 this.sleep=function(){ console.log(this.name + '正
2020-12-07 19:23:05
109
原创 for···in和for···of的区别 == null和undefined区别 == 一图搞懂javascript中的this与call/apply/bind的6中关系
for···in和for···of的区别for···in和for···of的区别:首先一句话:(for···in取key,for··of取value)①从遍历数组角度来说,for···in遍历出来的是key(即下标),for···of遍历出来的是value(即数组的值)...
2020-12-07 19:04:30
119
原创 深拷贝浅拷贝
深拷贝浅拷贝深拷贝和浅拷贝的区别1.浅拷贝: 将原对象或原数组的引用直接赋给新对象,新数组,新对象/数组只是原对象的一个引用2.深拷贝: 创建一个新的对象和数组,将原对象的各项属性的“值”(数组的所有元素)拷贝过来,是“值”而不是“引用”为什么要使用深拷贝?我们希望在改变新的数组(对象)的时候,不改变原数组(对象)内存模型JS内存空间分为栈(stack)、堆(heap)、池(一般也会归类为栈中)。 其中栈存放变量,堆存放复杂对象,池存放常量。基本数据类型与栈内存JS中的基础数据类型,这些值
2020-12-05 11:08:57
57
原创 javascript数组方法 == js数组去重 == js中数组排序(冒泡、快速、插入)== js中数组扁平化处理
javascript数组方法 == js数组去重参看如下链接:1.https://www.cnblogs.com/cauliflower/p/11267809.html2.https://www.cnblogs.com/zyfeng/p/10541133.html情境:将数组var arr = [1,1,‘true’,‘true’,true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,‘NaN’, 0, 0, ‘
2020-12-05 10:57:23
237
原创 递归手写深拷贝 ===== js数据类型判断
递归手写深拷贝前提:深拷贝和浅拷贝是只针对Object和Array这样的引用数据类型的。1. 堆栈内存具体看另一篇博客数据类型、堆栈存储2. 浅拷贝与深拷贝深拷贝和浅拷贝的示意图大致如下:浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存。但深拷贝会另外创造一个一模一样的对象,新对象跟原对象不共享内存,修改新对象不会改到原对象。赋值和浅拷贝的区别赋值:把一个对象赋值给一个新的变量时,赋的其实是该对象的在栈中的地址,而不是堆中的数据。也就是两个对象指向
2020-12-04 20:42:08
258
原创 js的数据类型、堆栈存储、多数据类型计算
js的数据类型、堆栈存储、多数据类型计算js数据类型有哪些基本数据类型(值类型): Number、String、Boolean、Undefined、Null、Symbol(es6新增独一无二的值) 和 BigInt(es10新增);引用数据类型: Object。包含Object、Array、 function、Date、RegExp。备注: 基本数据类型,又称值类型。栈堆存储值类型栈存储: 主要针对(Number、String、Boolean)三种数据。直接存储在栈(stack)中,占据空间
2020-12-04 20:31:40
117
原创 HTML5和css3新特性 === 前端常见浏览器兼容性问题解决方案
HTML5和css3新特性css3新特性1、选择器2、背景和边框3、文本效果4、2D/3D 转换 — 变形(transform)、过渡(transtion)、动画(animation)1. 选择器常规选择器:
2020-12-04 20:08:30
1187
原创 行内元素有哪些?块级元素有哪些? 空(void)元素有那些?==== 你知道CSS Hack吗?===== 简述一下src与href的区别 ===== link与@import区别
行内元素有哪些?块级元素有哪些? 空(void)元素有那些?CSS规范规定,每个元素都有display属性,确定该元素的类型,每个元素都有默认的display值,比如div默认display属性值为“block”,成为“块级”元素;span默认display属性值为“inline”,是“行内”元素。行内元素有:span a b i img input select strong块级元素有:div p h1-h6 ul table form ul ol li dl dt dd…空元素(
2020-12-03 21:43:50
243
原创 常用的页面布局(两栏布局、三栏(圣杯、双飞翼)布局)
常用的页面布局(两栏布局、三栏(圣杯、双飞翼)布局)常用的页面布局(两栏布局、三栏(圣杯、双飞翼)布局)//html<div id="left">左边定宽</div><div id="right">右边自适应,前端前端前端前端前端前端前端前端前端前端</div>1、左边左浮动,右边加oveflow:hidden;变成BFC清除左侧浮动元素的影响 #left{ float: left; width: 200px; b
2020-12-03 21:24:12
234
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人