常用问题总结
2 html5新特性,html5为什么要写<DOCTYPE html>
(1)用于绘画的 canvas 元素
(2)用于媒介回放的 video 和 audio 元素
(3)对本地离线存储的更好的支持
(4)新的特殊内容元素,比如 article、footer、header、nav、section
(5)新的表单控件,比如 calendar、date、time、email、url、searc
文档类型声明,它声明了文档类型为html5,它告诉浏览器和其他开发者,该文档使用的是html5标准和应该使用html5标准。
4 JS :apply与call方法的异同
调用一个对象的一个方法,用另一个对象替换当前对象
5 使用css或js实现物体的平移运动
6 JavaScript 垃圾回收方法及原理
1、标记清除
垃圾收集器在运行的时候会给存储在内存中的所有变量都加上标记。然后,它会去掉环境中的变量以及被环境中的变量引用的标记。而在此之后再被加上标记的变量将被视为准备删除的变量,原因是环境中的变量已经无法访问到这些变量了。最后。垃圾收集器完成内存清除工作,销毁那些带标记的值,并回收他们所占用的内存空间;
2、引用计数
引用计数的含义是跟踪记录每个值被引用的次数。当声明了一个变量并将一个引用类型赋值给该变量时,则这个值的引用次数就是1。相反,如果包含对这个值引用的变量又取得了另外一个值,则这个值的引用次数就减1。当这个引用次数变成0时,则说明没有办法再访问这个值了,因而就可以将其所占的内存空间给收回来。这样,垃圾收集器下次再运行时,它就会释放那些引用次数为0的值所占的内存。
7 vue 与jQuery的不同
jQuery是使用选择器()选取DOM对象,对其进行赋值、取值、事件绑定等操作;和原生的HTML的区别只在于可以更方便的选取和操作DOM对象,而数据和界面是在一起的;
Vue则是通过Vue对象将数据和View完全分离开来了。对数据进行操作不再需要引用相应的DOM对象,可以说数据和View是分离的,他们通过Vue对象这个vm实现相互的绑定。
8 vuex原理及使用方法
vuex 原理图9 函数柯里化
把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。
参数复用、提前返回和延迟执行
10性能优化方案
参考地址
1 减少http请求(合并js,合并css)
2 延迟加载(图片懒加载)
3 使用离线存储(从本地获取数据效率一般高于请求获取)
4 静态资源文件压缩,减少图片缩放;
11 Lodash 中 assign,extend 和 merge 的区别
assign 函数不会处理原型链上的属性,也不会合并相同的属性,而是用后面的属性值覆盖前面的属性值
extend 3.x 版本中和assign一样; 4.x 版本中会合并原型链上的属性
merge遇到相同属性名的时候,如果属性值是纯对象或集合的时候,会合并属性值.
12 请求缓存
请求缓存原理流程图
12 宏任务与微任务
一个宏任务在执行的过程中,是可以添加一些微任务的;
在当前的微任务没有执行完成时,是不会执行下一个宏任务的;
常见宏任务:I/O,setTimeout,setInterval,setImmediate,requestAnimationFrame;
常见微任务:process.nextTick,MutationObserver,Promise.then catch finally