面试
Lkkkkkkg
这个作者很懒,什么都没留下…
展开
-
深拷贝和浅拷贝
浅拷贝浅拷贝是创建一个新对象,这个对象有着原始对象属性值的一份精确拷贝。如果属性是基本类型,拷贝的就是基本类型的值,如果属性是引用类型,拷贝的就是内存地址 ,所以如果其中一个对象改变了这个地址,就会影响到另一个对象。深拷贝深拷贝是将一个对象从内存中完整的拷贝一份出来,从堆内存中开辟一个新的区域存放新对象,且修改新对象不会影响原对象。浅拷贝和赋值 var obj1 = { a: 1, b: 'a', c: { a: 1, b:原创 2020-07-28 19:57:27 · 190 阅读 · 0 评论 -
手写防抖函数和节流函数
防抖函数function test() { console.log(1)}window.addEventListener('mousemove', debounce(test, 1000));function debounce(func, wait) { var timer; return function () { let context = this let args = arguments timer ? clearT原创 2020-07-28 04:31:28 · 641 阅读 · 0 评论 -
什么是Event Loop
Event LoopWikipedia这样定义:“Event Loop是一个程序结构,用于等待和发送消息和事件。(a programming construct that waits for and dispatches events or messages in a program.)”为什么出现 Event LoopJavaScript是一种单线程语言,所有任务都在一个线程上完成。一旦遇到大量任务或者遇到一个耗时的任务,比如加载一个高清图片,网页就会出现"假死",因为JavaScript停不原创 2020-07-25 20:22:44 · 5342 阅读 · 0 评论 -
cookies和session的区别
cookies和session的区别过程:浏览器第一次访问服务器,服务器会创建一个session对象,并返回一个sessionid放在cookies保存带回浏览器,浏览器第二次访问,服务器会从cookies拿sessionid进行跟踪,如果这个id的session已经失效,就会创建一个新的session,再把新的sessionid放进cookies里带回浏览器相同点:cookies和se...原创 2018-10-31 11:38:04 · 154 阅读 · 0 评论 -
js垃圾回收机制
面试题之垃圾回收机制面试回答:js的垃圾回收机制就是周期性的找出不再使用的变量,然后释放其占用的内存,js的垃圾回收机制只在函数内部执行,因为全局变量的生命周期是一直到浏览器关闭才结束,在函数内部的变量,在函数结束时,如果这个变量没有被别的函数引用,就会把这个变量回收。最常用的方法是标记清除:变量在函数里被声明的时候会被标记为进入环境,函数结束时会被标记为离开环境,垃圾回收器运行的时候,会去掉函...原创 2018-10-26 11:33:18 · 482 阅读 · 0 评论 -
js作用域链概念
前端面试题之JS作用域链面试回答:作用域链就是用来保证执行环境里有权访问的变量和函数是有序的,变量只能向上访问,访问到window对象即被终止,不允许向下访问变量...原创 2018-10-26 10:39:45 · 438 阅读 · 0 评论 -
js手写二叉排序树
前端面试题之手写二叉排序树二叉排序树:每个节点的左节点都比根节点小,右节点都比根节点大function TreeNode(data, left, right) { //节点结构 this.val = data; this.left = left; this.right = right;}function BST() { //二叉树构造函数 this.roo...原创 2018-10-21 21:28:31 · 441 阅读 · 0 评论 -
面试介绍项目
前端面试题之介绍项目仿O2O外卖平台微信小程序这个项目是基于微信小程序的外卖点餐平台。选择外卖平台是因为现在的餐饮业越来越发达,外卖平台是一个低成本的高回报的项目,比如说,经营一个好线下的店铺,要考虑店铺的所在地的人流量,房租,水电,人力等等,而搭建一个好的外卖平台就可以大大减少这些成本,因为现在大家都喜欢点外卖,点外卖已经成为了一个趋势。选择小程序是因为现在微信的普及率已经非常高了,人人...原创 2018-10-23 14:05:26 · 7732 阅读 · 0 评论 -
SSR(服务端渲染)
前端面试题之SSR客户端渲染:在服务端放了一个html 页面,里面有客户端发起请求,服务端把页面(响应的是字符串)发送过去,客户端从上到下依次解析,如果在解析的过程中,发现ajax请求,再次像服务器发送新的请求,客户端拿到ajax 响应结果,模板引擎渲染。过程至少和服务端发起两次请求SSR:服务端渲染:sever 端页面+数据,服务端过程:1.读取index.html 2.模版进行...转载 2018-10-21 13:10:50 · 11291 阅读 · 0 评论 -
cookies与storage的区别
前端面试题之cookies与storage的区别共同点:都是保存在浏览器端,且同源的。区别:cookies每次发送请求都会被携带,会造成带宽浪费,storage则不会,保存在本地cookies的大小和数量都有限制,大小一般在4K左右,storage达到5M或者更大cookies有效期由服务器设置,localstorage本地永久保存,sessionstorage在当前浏览器关闭前有效...原创 2018-10-21 13:02:01 · 388 阅读 · 0 评论 -
虚拟DOM
前端面试题之虚拟DOM面试回答:虚拟DOM是为了解决DOM操作过多而导致性能低的问题而诞生的,虚拟DOM诞生之前,操作DOM的是直接操作的,改一次渲染一次,而虚拟DOM就是用js模拟一颗DOM树,每次修改DOM,先把虚拟DOM修改,最后再一次性把虚拟DOM更新,这样就减少了很多次DOM操作,优化了性能...原创 2018-10-26 15:57:02 · 621 阅读 · 0 评论 -
Vue面试题
1. Vue中的MVVM模式即 Model-View-ViewModelModel是数据层,View是视图层,ViewModel是同步View和Model的对象。Model和View没有直接联系,而是通过ViewModel的双向数据绑定连接了起来,而View和Model同步是完全自动的,因此开发者只需要关注业务逻辑,不需要操作Dom元素(与MVC最大的区别:MVVM改变数据后不用操作DOM元...原创 2018-10-26 16:19:06 · 385 阅读 · 0 评论 -
HTTP状态码
前端面试之HTTP状态码1开头表示客户端应该继续发送请求2开头表示成功的请求200表示OK,正常返回信息201表示请求成功且服务器创建了新的资源202表示服务器已经接受了请求,但还未处理3开头表示重定向301表示永久重定向,请求的网页已经永久移动到新位置302表示临时重定向304表示自从上一次请求以来,页面的内容没有改变过4开头表示客户端错误401表示服务器无法理解...原创 2018-10-24 22:10:36 · 1234 阅读 · 0 评论 -
Node面试题
前端面试题之NodeNode的特点有三个:单线程、事件驱动、非阻塞I/O优点:因为Node是基于事件驱动和无阻塞的,所以非常适合处理并发请求,因此构建在Node上的代理服务器相比其他技术实现(如Ruby)的服务器表现要好得多。与Node代理服务器交互的客户端代码是由javascript语言编写的,因此客户端和服务器端都用同一种语言编写,这是非常美妙的事情。缺点:Node是一个相...原创 2018-10-27 12:01:04 · 2036 阅读 · 0 评论 -
存储结构有哪些
存储结构有哪些顺序存储把逻辑上响铃的节点存储在物理位置相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现链式存储链式存储不要求逻辑上邻接点在物理位置上也相同,结点间的逻辑关系是由附加的指针字段表示的...原创 2018-11-02 11:28:01 · 1244 阅读 · 0 评论 -
清除浮动的方式
清除浮动的方式给父级定义height.parent { background-color: red;}.float-left { width: 200px; height: 200px; float: left;}<div class="parent"> <div class="float-left"&原创 2018-11-04 13:51:57 · 281 阅读 · 0 评论 -
webpack面试题
了解webpack吗webpack是一个模块打包工具,使用webpack管理你的模块依赖,并编译输出她们所需要的静态文件,它能够很好地管理、打包web开发中所用到的html、css、js及各种静态文件,让开发过程更加高效。webpack优点代码分割和模块处理什么是bundle,什么是chunk,什么是module?bundle是由webpack打包出来的文件,chunk是指webpack...原创 2018-11-05 13:44:56 · 962 阅读 · 0 评论 -
JavaScript、jQuery、ECMAScript、JSON面试题
第二阶段JavaScript、jQuery、ECMAScript、JSON1、jQuery this与this区别jquery的this指的是jquery对象3、请描述一下 cookies,sessionStorage 和 localStorage 的区别?https://blog.csdn.net/qq593249106/article/details/832407574、对BFC...原创 2018-11-08 14:51:20 · 548 阅读 · 0 评论 -
HTML、CSS、HTML5、CSS3面试题
第一阶段 HTML、CSS、HTML5、CSS31、XHTML与HTML的有何异同?HTML是一种基于WEB的网络设计语言,XHTML是基于XML的置标语言,XHTML可以认为是XML版的HTML,所以它的语法比较严谨:元素必须关闭,嵌套必须正确,大小写区分,属性值必须用双引号,id属性代替name属性2、介绍一下CSS的盒子模型?弹性盒子模型是什么?3、Doctype的作用?标准模式...原创 2018-10-28 13:00:54 · 2190 阅读 · 2 评论 -
Vue生命周期及特征
面试题之Vue生命周期及特征面试回答:Vue生命周期可以分为8个阶段,分别是:beforeCreate,created,beforeMount,mounted,beforeUpdate,updated,beforeDestroy,destroyed在beforeCreate和created这个生命周期,进行初始化事件,进行数据的观测,到了created的时候,放在data里面的数据已经完成了绑...原创 2018-10-25 11:35:38 · 974 阅读 · 0 评论 -
前端浏览器安全
前端面试题之浏览器安全常见的网络攻击方式有两种:XSS和CSRFXSS(跨站脚本攻击)简单描述:恶意注入一些HTML/JavaScript代码到用户浏览的网页上,从而达到Cookie资料窃取、会话劫持、钓鱼欺骗等攻击。防御手段:设置HttpOnly,浏览器禁止页面的JS访问带有HttpOnly属性的Cookie对输入内容做格式检查,类似“白名单”,可以让一些基于特殊字符的攻击失效。...原创 2018-10-19 14:23:28 · 1191 阅读 · 0 评论 -
js手写Promise
前端面试题之JS手写Promise先写一个简单的Promise:function Promise(executor) { var self = this; this.status = 'pending'; this.value = undefined; this.reason = undefined; function resolve(value) ...原创 2018-10-16 20:05:20 · 2978 阅读 · 0 评论 -
MongoDB面试题
前端面试题之MongoDBhttps://blog.csdn.net/shehun1/article/details/21240731?utm_source=blogxgwz0原创 2018-10-19 11:02:04 · 442 阅读 · 0 评论 -
页面性能优化
前端面试题之页面性能优化1.合并资源,减少http请求:合并资源:CSS Sprites(精灵图)减少http请求:一个页面请求不要太多,能分页分页,把每个页面请求减少2.异步加载非核心代码:三种方法:动态创建script,script标签添加defer字段,script标签添加async字段1)动态创建script:function addScriptTag(src){ var ...原创 2018-10-19 10:52:44 · 408 阅读 · 0 评论 -
js数据类型的存储(栈与堆)
前端面试题之JS数据类型的存储(栈与堆)JS中数据对于存储可以分为两种数据类型:基本类型和引用类型基本类型:Number,String,Boolean,Null,Undefined这些类型的值存放在栈区,函数调用时传递的是变量的值(值)。引用类型:Object,Array,Function这些类型的对象存放在堆区,对象的地址存放在栈区,函数调用时传递的是对象的地址(址)。区别: 1 ...原创 2018-10-16 11:26:55 · 2705 阅读 · 0 评论 -
js基本数据类型及判断
JS基本数据类型有:NumberStringBooleanUndefinedObject(Array,Function)NullSymbol(ES6新增)其中Array,和Function是Object的子集。判断Number,String,Boolean,Undefined,Object,Function直接用typeof:console.log(typeof 1); //n...原创 2018-10-16 10:56:37 · 512 阅读 · 0 评论 -
浏览器缓存
前端面试题之浏览器缓存浏览器缓存指的是http缓存,而storage是应用层缓存,不一样浏览器缓存分为两类:强缓存和协商缓存先了解一下浏览器缓存机制:缓存这东西,第一次必须获取到资源后,然后根据返回的信息来告诉如何缓存资源,可能采用的是强缓存,也可能告诉客户端浏览器是协商缓存,这都需要根据响应的header内容来决定的。下面用两幅图来描述浏览器的缓存是怎么玩的,让大家有个大概的认知。...原创 2018-10-18 22:27:01 · 1878 阅读 · 0 评论 -
浏览器渲染过程
前端面试题之浏览器渲染过程先放一张图方便理解:渲染引擎先通过请求拿到文档内容,浏览器解析HTML构建DOM树:然后将CSS解析构建CSS Rule 树:然后将DOM 树和CSS Rule 树结合形成Render 树:然后浏览器开始布局Render树(注意此前浏览器还不知道DOM的结构是怎么样的,可以自行观察上面各种树的图,并不能知道各种标签所在的位置,例如浏览器不知道某个div它...原创 2018-10-15 17:34:48 · 552 阅读 · 0 评论 -
js手写继承
前端面试题之JS继承方法在js中,继承的方法有以下几种:构造函数继承function Parent() { this.name = 'parent';}function Child(age) { Parent.call(this); this.age = age;}var c = new Child(12);console.log(c.name); //输出...原创 2018-10-16 22:07:43 · 1758 阅读 · 0 评论 -
ES5和ES6继承的区别
前端面试题之JS ES5和ES6继承的区别ES5的继承方法可以看这篇:https://mp.csdn.net/mdeditor/83098432#ES5与ES6的继承方法对照:ES5function Parent() { this.name = 'parent'; this.arr = [1,2,3,4];}Parent.prototype.say = functio...原创 2018-10-16 23:25:42 · 2758 阅读 · 0 评论 -
jQ链式调用的原理
面试题之jQ链式调用的原理面试回答:链式调用的原理就是实例在调用内部方法的时候,返回当前调用这个方法的实例对象this就可以了,因为返回了当前的this就可以继续访问自己的原型了...原创 2018-10-25 10:50:40 · 2909 阅读 · 0 评论 -
详细分析闭包是什么
前端面试之JS闭包面试回答:什么是闭包 :闭包就是在函数里定义函数,而且内部函数可以引用外部函数的参数和局部变量,当外部函数返回这个内部函数时,内部函数引用的参数和局部变量保存在内部函数里为什么要用闭包:因为js的函数作用域的关系,一般情况下外部是访问不了函数内部的变量的,设计闭包结构就可以访问到函数内部的变量,还有就是闭包可以让变量长期保存在内存里,生命周期较长闭包应用:for循环异步问...原创 2018-10-25 10:43:06 · 381 阅读 · 0 评论 -
http与https区别
前端面试题之http与https区别一、HTTP和HTTPS的基本概念HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密...原创 2018-10-20 20:29:35 · 915 阅读 · 0 评论 -
跨域方式
前端面试题之跨域方式常用的:jsonP:通过script标签调用不同域的js把参数带回来CORS:通过服务端在响应头设置Access-Control-AllowOrigin字段进行跨域还有:window.name:一个页面跳转之后,它的window.name是不会变的,通过这个原理,一个页面跳转到不同域的页面也可以拿到不通域页面的值document.domain:document...原创 2018-10-20 20:24:32 · 164 阅读 · 0 评论 -
js十大排序
前端面试题之JS排序快速排序采用阮一峰的排序,简单易懂,虽然不是最正规的原理:随便选一个数,把原数组里比这个数小的放左边,比这个数大的放右边,然后再把左边和右边的数组重复上面的操作,最后完成排序function quickSort(arr) { if(arr.length <=1) { return arr; } var midI = Mat...原创 2018-10-20 17:10:59 · 872 阅读 · 0 评论 -
js手写apply
前端面试题之JS手写apply参考之前手写的call方法:https://blog.csdn.net/qq593249106/article/details/83115935Function.prototype.call2 = function (obj) { var obj = obj || window; var args = []; for(var i = 1;...原创 2018-10-17 20:43:14 · 992 阅读 · 0 评论 -
js手写call
前端面试题之JS 手写call,apply,bind回顾一下官方call的用法:var value = 'v in window';function func() { console.log(this.value);}var obj = { value: 'v in obj'};func(); //v in windowfunc.call(obj); // v in...原创 2018-10-17 19:03:30 · 1847 阅读 · 4 评论 -
HTML5语义化标签
前端面试题之HTML5语义化标签语义元素清楚地向浏览器和开发者描述其意义。语义化优点:易于用户阅读,样式丢失的时候能让页面呈现清晰的结构。有利于SEO,搜索引擎根据标签来确定上下文和各个关键字的权重。方便其他设备解析,如盲人阅读器根据语义渲染网页有利于开发和维护,语义化更具可读性,代码更好维护,与CSS3关系更和谐。HTML5 提供了定义页面不同部分的新语义元素:<art...原创 2018-10-19 16:22:45 · 393 阅读 · 0 评论 -
js手写bind
前端面试题之JS手写bind首先解释一下bind:bind() 方法会创建一个新函数。当这个新函数被调用时,bind() 的第一个参数将作为它运行时的 this,之后的一序列参数将会在传递的实参前传入作为它的参数。(来自于 MDN )给个例子:var value = 'v in window';function func() { console.log(this.value)...原创 2018-10-18 02:44:45 · 2331 阅读 · 0 评论