前端面试题整理

2018-07-14  本文已影响0人  橘子柚子橙子_

针对js的问题

  1. let 和 var的区别是什么
    var声明的变量都是全局变量,不存在局部变量,有变量提升;let可以声明局部变量,不存在变量提升;不可以对同一个变量进行重复声明...

  2. 说一下你对promise的理解
    1. promise可以用来解决回调地狱
    2. 有3种状态,①进行中-pending ②已成功-fulfilled ③已失败-rejected 3. promise对象一旦新建,就会立即执行,无法取消
    4. 存在 .then 方法,该方法会返回一个全新的promise对象,因此可以进行链式调用

  3. 常用的数组去重的方法,举个例子说明
    es6新增的Set()方法,结合Array.from()可以进行数组的去重;
    例如:const arr = new Set([1,2,3,4,4,5]) Array.from(arr)
    因为:Set是es6新增的数据结构,它的成员都是独一无二的,所以可以用来对数组进行去重
    也有很多别的方法,这个方法应该是最简洁的一种

  4. 箭头函数中的this的特点
    箭头函数内的this对象,就是定义时所在的对象,而不是使用时所在的对象

  5. 谈一下对闭包的理解
    1. 什么是闭包:能够读取其它函数内部变量的函数
    2. 闭包的优点:① 读取函数内部的变量 ② 让这些变量的值始终保存在内存中
    3. 闭包的缺点:对内存的消耗很大,在IE中可能会造成内存泄露

  6. 谈一下对js原型链的理解
    js是动态的,且其本身并不提供一个class实现;虽然在es5/es6中引入了class关键字,但只是一个语法糖,js仍然是基于原型的.
    js中的对象,都有一个私有属性_proto_指向它的原型对象prototype.这个原型对象也有自己的原型对象,一层层的向上,直到一个对象的原型为Null

  7. 从在浏览器地址栏输入一个地址,到页面加载完成,这之间发生了什么?
    内容太多了,这个文章整理的很详细。。。

  8. 304状态码的含义
    如果客户端发送了一个GET请求,且改请求已经被允许。而文档的内容,自上次请求以来并未发生变化,则服务器应返回304状态码。或者说是,客户端已经执行了GET,但是文件未变化。

  9. 谈一下cookie的弊端
    1. 数量和长度的限制
    2. 潜在的安全风险
    3. 用户配置可以为禁用
    4. 有些状态不可能保存在客户端

  10. 说一下冒泡排序的过程
    ...

  11. vue中有哪些常用的生命周期钩子函数(如果vue用的很熟练,这个问题是需要能回答出来的)
    1. beforeCreate
    2. created
    3. beforeMount
    4. mounted
    5. beforeUpdate
    6. updated
    7. ...

  12. vue是如何实现双向绑定的
    内容有很多,这个文章介绍的很详细...

  13. vue组件之间如何通信的(这个需要能够回答出来)
    内容有很多,这个文章介绍的很详细...

  14. vuex是什么,如何使用(这个需要能够回答出来)
    是一个容器,包含着应用中大部分的状态;Vuex 的状态存储是响应式的。当 Vue 组件从 store 中读取状态的时候,若 store 中的状态发生变化,那么相应的组件也会相应地得到高效更新。

上一篇下一篇

猜你喜欢

热点阅读