简单整理了一下最近遇到的一些面试题-面试进行中

整理了一下最近面试遇到的题css

CSS

一、div 水平垂直居中
/* 定位 */
  position: absolute;
  top: 50%;
  left: 50;
  transform: translate(-50%, 50%);
  /* flex 布局 */
  display: flex;
  justify-content: center;
  align-items: center;
复制代码
二、css 盒模型
  • box-sizing: content-box; (标准模型)

width = contentvue

  • box-sizing: border-box; (IE盒模型)

width = content + padding + bordernode

三、inline 和 inline-block 的区别
  • inline 只能设置左右 margin、padding, 不能设置 width 和 height
  • inline-block 生成一个块级别框,可是框的行为跟内联元素同样
四、css 中使用过哪些图片替换方法,如何选择使用
五、link 跟 @import 的区别
  • link 是 HTML 提供的标签
  • link 引用的 css 会同时被加载,而 import 引用的 css 会等到页面所有被下载完后再加载
  • import 老版本浏览器不支持
  • DOM可控性区别:没法使用 dom 方法插入样式
六、css 样式优先级

内联样式 > ID 选择器 > 类选择器 = 属性选择器 = 伪类选择器 > 标签选择器 = 伪元素选择器webpack

JS

一、async/await 跟 promise 的区别
  • Promise 代码彻底都是 Promise 的 API (then、catch 等)
  • async/await 是 Generator 函数的语法糖
二、闭包的特性合优缺点
  • 什么是闭包?

闭包就是可以读取其余函数内部变量的函数 (来源: blog.csdn.net/yingziziziz…)nginx

  • 优势

读取函数内部的变量 让局部变量保存在内存中,实现变量数据共享git

  • 缺点
  • 因为闭包会使得函数中的变量都被保存在内存中,内存消耗很大,因此不能滥用闭包,不然会形成网页的性能问题,在IE中可能致使内存泄露。解决方法是,在退出函数以前,将不使用的局部变量所有删除
  • 闭包会在父函数外部,改变父函数内部变量的值。因此,若是你把父函数看成对象(object)使用,把闭包看成它的公用方法(Public Method),把内部变量看成它的私有属性(private value),这时必定要当心,不要随便改变父函数内部变量的值。
  • 来源: www.jianshu.com/p/8376170fb…
三、原型、原型链,有什么特色

关于原型其实文章仍是蛮多的,看着也有点迷糊 segmentfault.com/a/119000000…web

四、如何判断对象类型

typeof、 instanceof 看 www.jianshu.com/p/5be700ee6…面试

五、宿主对象和原生对象的区别
  • 原生对象: Object、Function、Array、String、Boolean、Number、Date、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError、Global
  • 宿主对象: 有宿主提供的对象,在浏览器中window对象以及其下边全部的子对象(如bom、dom等等),在node中是globla及其子对象,也包含自定义的类对象。【何为“宿主对象”? 在web中,ECMAScript中的“宿主”固然就是咱们网页的运行环境,即“操做系统”和“浏览器”。全部非本地对象都是宿主对象(host object),即由 ECMAScript 实现的宿主环境提供的对象。】
六、call 和 apply 的区别
  • .call(this, arg1, arg2, arg3)
  • .apply(this, arguments)
七、什么是闭包
八、解释 js 的 同源策略, 如何实现跨域访问
  • 同源:

若是两个页面拥有 相同 的 协议(protocol),端口(若是指定),和 主机,那么这两个页面就属于同一个源(origin)。 (协议、域名、端口)算法

  • 跨域
  • jsonp
  • iframe
  • 跨域资源共享(CORS)
  • nginx 代理跨域
九、== 和 === 的区别

看: blog.csdn.net/chenchunlin…json

十、数组方法 pop, push, unshift, shift
  • pop: 删除数组最后一个元素,返回删除的那个元素
  • push: 往数组结尾添加元素
  • shift: 删除数组第一个元素,返回该元素
  • unshift: 往数组前添加元素
十一、事件委托是什么

事件委托就是利用冒泡的原理,把事件加到父元素或祖先元素上,触发执行效果。

优势: 提升性能,显著提升事件处理速度,减小内存占用

var btn6 = document.getElementById("btn6");
document.onclick = function(event){
  event = event || window.event;
  var target = event.target || event.srcElement;
  if(target == btn6){
    alert(btn5.value);
  }
}
复制代码
十二、split()、join() 的区别
1三、例举 3 种强制类型转换和 2 种隐式类型转换
1四、js 的原始类型和引用类型有哪些

Undefined、Null、Boolean、String、Number、Symbol、Object

1五、1.toString() 会输出什么
  • 1.toString() => 报错
  • 1..toString() => "1"
  • 1.0.toString() => "1"
1六、什么是回调函数?有哪些缺点?如何解决回调地狱?
  • 在JavaScript中,回调函数具体的定义为:函数A做为参数(函数引用)传递到另外一个函数B中,而且这个函数B执行函数A。咱们就说函数A叫作回调函数。若是没有名称(函数表达式),就叫作匿名回调函数。所以callback 不必定用于异步,通常同步(阻塞)的场景下也常常用到回调,好比要求执行某些操做后执行回调函数。
  • 如何解决回调地狱
    • 保持代码简短
    • 模块化
    • 处理每个错误
1七、如何实现一个可设置过时时间的 localStorage

VUE

一、vue 常见报错
二、父组件经过 props 给子组件传值,子组件可否修改该值,会有什么影响

作了个小测试,看: note.youdao.com/noteshare?i…

三、vue 双向数据绑定原理

juejin.im/entry/59239…

四、v-if 和 v-show 指令有什么相同和不一样

v-if 直接从 dom 树上删除或重建元素节点, v-show 只是修改 display 的值 v-if 高消耗,不适合作频繁切换

五、 有什么做用

keep-alive 是 Vue 内置的一个组件,可使被包含的组件保留状态,或避免从新渲染

六、简述 vue 里面的虚拟 dom

算法

假设你正在爬楼梯,须要 n 步你才能到达顶部,但每次你只能爬一步或者两步,你能有多少种不一样的方法爬到楼顶?

其它

项目部署流程
服务器部署项目常见错误,通常根据什么来判断
git 不经常使用的命令
什么状况下会遇到跨域,怎么解决
webpack 的做用

看这篇吧 (什么是WebPack,为何要使用它) www.jianshu.com/p/d745b94ae…


后面陆续补充

感谢预览,欢迎提意见、建议,谢谢!

  • 2019-03-27: 更新 css 六、 js 14-1七、vue 6
相关文章
相关标签/搜索