前端面试-The first drop of blood

355 阅读2分钟

1.描述一下cookies、sessionStorage、localStorage的区别?

cookies是定时储存,时间到了就会清除

Sessionstorage是会话存储,会话关闭就会被清除

localStorage是离线存储,需要用户手动删除

2.如何理解HTML5新标签的浏览器兼容问题?浏览器怎么对HTML5的离线储存资源进行管理和加载的呢?

Html5新标签的部分对浏览器的兼容不是很好,尽量减少使用,使用的话做相应的兼容处理

通过document.createElement方法产生的标签,可以利用这一特性让这些浏览器支持HTML5新标签,

在html标签内加入Manifest属性,cache=‘manifest’

如果已经打开过app,离线储存过,浏览器会对比新的manifest文件和旧的manifest文件;离线情况下直接调用储存的manifest文件

(通过getItem()、setItem()、调用或者存储)

3.AMD\CMD规范区别?

CMD依赖就近而AMD依赖前置

CMD是延迟执行的,而AMD是提前执行的。

AMD 的 API 默认是一个当多个用,CMD 的 API 严格区分

4.简述一下flex、grid布局,他们有什么不同?

Flex布局是弹性布局模式,弹性布局适配性很好

,是一个一维系统,用来为盒状模型提供最大的灵活性。

Grid布局是网格布局模式,简化了操作

是一个二维系统,可以同时处理行和列,可以通过将css规则用于父元素(网格容器)和该元素的子元素(网格元素)来使用网格布局。

5.JavaScript原型有什么特点?JavaScript如何实现继承?JavaScript继承的几种方式?

特点:原型链实现了继承。

通过子类对父类属性的继承,并对其进行扩展,从一般到特殊化的过程

原型链继承、构造函数继承、组合式继承

6.什么是闭包?为什么要用它?

在一个函数内部放入另一个函数

实现对私有变量的访问、防止全局污染

7.介绍一下标准的CSS的盒子模型?低版本IE的盒子模型有什么不同的?

Html会将每个元素渲染成一个盒子,他具有margin、padding、border、content四个属性

低版本的IE盒子模型

IE的content部分把 border 和 padding计算了进去;

8.Webpack热加载模块的实现原理?常用的loader和它们的作用?

hot reload 实际上配置的是 live reload,也就是每次修改页面刷新。

所谓的 hot reload(热加载) 就是每次修改某个 js 文件后,页面局部更新

css-loader 处理css中路径引用等问题

style-loader 动态把样式写入css

sass-loader scss编译器

less-loader less编译器

postcss-loader scss再处理

9.异步加载JS的方式有哪些?了解JS执行机制吗?

方案一、$(document).ready()

方案二、