前端常见面试题

学习重点

学习资源

前端知识架构

前端知识体系

面试准备

题目

apply,call,bind 的区别及用法

apply 接收的是数组,并会立即执行

call 接收的是用逗号隔开的参数,并会立即执行

bind 接收的是用逗号隔开的参数,但是不会立即执行,而是返回一个新的函数

Http的状态码以及意义

1开头 代表请求已被接受,需要继续处理

1)状态码100 表示服务器已接收请求头,正在等待接下来的请求,或者如果请求已经完成。

2)状态码101 表示服务器已理解客户端请求,通知客户端采用不同的协议来完成这个请求。

3)状态码102 表示服务器已经收到并正在处理请求,但无响应可用。

2开头 (请求成功)表示成功处理了请求的状态代码

1)状态码200表示响应成功

2)状态码202表示接受请求

3)状态码204表示请求成功但无资源返回

3开头 (请求被重定向)表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。

1)状态码301表示永久性重定向,资源URI已更新

2)状态码302表示临时性重定向,本次使用新URI

3)状态码304表示原来缓存的文档可以继续使用

4开头 (请求错误)这些状态代码表示请求可能出错,妨碍了服务器的处理。

1)状态码400表示请求错误,请求报文中存在语法错误,URL 可能拼写错误

2)状态码403表示禁止请求,请求被服务器拒绝

3)状态码404表示无资源,服务器上无法找到请求的资源

vue的生命周期

beforeCreate(创建前) 在数据观测和初始化事件还未开始

created(创建后)完成数据观测,属性和方法的运算,初始化事件,$sel属性还没有显示出来

beforeMount(载入前)在挂载开始之前被调用,相关的render函数首次被调用,实列已完成以下的配置,编译模板,吧data里面的数据和模板生成html,注意此时还没有挂载html到页面上。

mounted(载入后)在el被新创建的vm.$el替换,并挂载到实列上去之后调用,实列已完成以下配置,用上面编译好的html内容替换el属性指向的DOM对象,完成模板中的html渲染到html页面中,此过程中进行ajax交互

beforeUpdate(更新前)在数据更新之前调用,发生在虚拟DOM重新渲染和打补丁之前可以在该钩子中进一步的更改状态,不会触发附加的重渲染过程

updated(更新后)在由于数据更改导致的虚拟DOM重新渲染和打补丁之后调用,调用时,组件DOM已经更新,所以可以执行依赖于DOM的操作,然而在大多数情况下,应该避免在此期间更改状态,因为这可能会导致更新无限循环,该钩子在服务器端渲染期间不被调用。

beforeDestroy(销毁前)在实列销毁之后调用,实列任然完全可用

destroyed(销毁后)在实列销毁之后调用,调用后,所有的事件监听器会被移除,所有的子实列也会被销毁,该钩子在服务端渲染期间不被掉用。

什么是vue的生命周期

Vue实列从创建到销毁的过程,就是生命周期,从开始创建,初始化数据,编译模板,挂载Dom—>渲染,更新—渲染,销毁等一系列过程,称之为Vue的生命周期。

Vue生命周期的作用是什么

他的生命周期中有多个事件钩子,让我们在控制整个Vue实列的过程时更容易形成好的逻辑

vue生命周期总共有几个阶段

他可以分为8个阶段,创建前后,载入前后,更新前后,销毁前后,

第一次页面加载会触发那几个钩子

会触发下面这几个beforeCreate,created,beforeMount,mounted

DOM渲染在那个周期中就已经完成

DOM渲染在mounted中就已经完成了

父组件与子组件传值

父组件传给子组件:子组件通过props方法接受数据

子组件传给父组件:$emit方法传递参数

非父子组件间的数据传递,兄弟组件传值

eventBus,就是创建一个事件中心,相当于中转站,可以用它来传递事件和接受事件,项目比较小时,用这个比较合适。

Vue的路由实现,hash模式,和history模式

hash模式:在浏览器中符号#,#以及#后面的字符称之为hash,用window.location.hash读取,特点,hash虽然在URL中,但不被包含在HTTP请求中,用来指导浏览器动作,对服务端安全无用,hash不会重加载页面

hash模式下,仅 hash符号之前的内容会被包含在请求中,如http://www.xxx.com,因此对于后端来说,即使没有做到对路由的全覆盖,也不会返回404错误。

history模式: history采用HTML5的新特性;且提供了两个新方法: pushState () ,

replaceState ()可以对浏览器历史记录栈进行修改,以及popState事件的监听到状态变更。history模式下,前端的URL必须和实际向后端发起请求的URL一致,如

http://www.xxx.com/items/id。后端如果缺少对/items/id 的路由处理,将返回404错误。

vue路由的钩子函数

首页可以控制导航跳转,beforeEach,afterEach等,一般用于页面title的修改。一些需要登录才能调整页面的重定向功能。

beforeEach主要有3个参数to,from,next:

to: route即将进入的目标路由对象,

from: route当前导航正要离开的路由

next: function一定要调用该方法resolve这个钩子。执行效果依赖next方法的调用参数。可以控制网页的跳转。

vue如何自定义一个过滤器?

<divid="app"><inputtype="text"v-model="msg"/>{{msgl capitalize }}</div>

var vm=new vue({el : "#app" ,data: {msg : ''},filters: {capitalize: function (value) {if ( !value) return ''value = value.tostring()return value.charAt(0).toUppercase() + value.slice(1)}}})

全局定义过滤器

vue.filter( 'capitalize', function (value) {if ( !value) return ''value = value.tostring()return value.charAt(0).touppercase() + value.slice(1)})

1.css只在当前组件起作用

答:在style标签中写入scoped即可例如:<style scoped> </style>

2.v-if 和v-show区别

答: v-if按照条件是否渲染,v-show是display的block或none;

3.$route和$router的区别

答: $route是"路由信息对象”,包括path,params,hash,query,fullPath,matched,name等路由信息参数。而$router是"路由实例"对象包括了路由的跳转方法,钩子函数等。

4.vue.js的两个核心是什么?

答:数据驱动、组件系统

5.vue几种常用的指令

答: v-for 、 v-if 、 v-bind、v-on、v-show、v-else

9.什么是vue的计算属性?

答:在模板中放入太多的逻辑会让模板过重且难以维护,在需要对数据进行复杂处理,且可能多次使用的情况下,尽量采取计算属性的方式。好处:①使得数据处理结构清晰;②依赖于数据,数据更新,处理结果自动更新;③计算属性内部this指向vm实例;④在template调用时,直接写计算属性名即可;⑤常用的是getter方法,获取数据,也可以使用set方法改变数据;⑥相较于methods,不管依赖的数据变不变,methods都会重新计算,但是依赖数据不变的时候computed从缓存中获取,不会重新计算。

11.怎么定义vue-router的动态路由?怎么获取传过来的值

答:在router目录下的index.js文件中,对path 属性加上/:id,使用router对象的params.id 获取。

2、使用Vue的好处

vue两大特点:响应式编程、组件化

vue的优势:轻量级框架、简单易学、双向数据绑定、组件化、视图、数据和结构的分离、虚拟DOM、运行速度快

什么是异步:

当前一个任务被执行时,不会等待任务执行完成后就去执行下一个任务,等前一个任务执行完成后,将去执行其返回的回调函数,这是异步操作

为什么要用异步:

js是单线程的,因此必须等前一个任务完成后,后一个任务才会被执行。因此当执行一段耗时的程序时,会影响整个程序的执行,异步的方法就是为了解决这个问题。

3.Promise

Promise是es6提出的异步编程的一种解决方案。

Promise 对象有三种状态:

pending: 初始状态,既不是成功,也不是失败状态。

fulfilled: 意味着操作成功完成。

rejected: 意味着操作失败。

promise的状态只能从pending变成fulfilled,和pending变成rejected,状态一旦改变,就不会再改变,且只有异步操作的结果才能改变promise的状态。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,099评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,828评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,540评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,848评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,971评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,132评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,193评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,934评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,376评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,687评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,846评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,537评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,175评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,887评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,134评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,674评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,741评论 2 351

推荐阅读更多精彩内容