1.promise setTimeout谁先执行·
setTimeout属于宏任务,而promise属于微任务,任务执行时,会先执行宏任务里面的代码,然后再去执行宏任务中的微任务代码,只有当前宏任务执行完毕才会去执行下一个宏任务。
2.单向数据流的理解
主要是vue组件间的数据传递,即数据总是由父组件传递给子组件,子组件在内部维护自己的数据,但它无权维护父组件传递给它的数据,这样做是为了组件间更好的维护。在开发中可能有多个子组件依赖于父组件的某个数据,假如子组件可以修改父组件的数据,一个子组件修改数据则会引起其他依赖于该数据的子组件也发生变化,所以vue不推荐子组件修改父组件的数据。
3.什么是window对象?什么是document对象?
简单来说,document是window的一个对象属性。window对象表示浏览器打开的窗口,document对象是window和frame对象的一个属性,是显示于窗口或框架内的一个文档。
4.null undefined的区别
数据类型不同(基本类型:boolean,null,number,string,symbol,undefined;引用类型:function,object,array),然后转换为Number类型的值不同,null转换后的值为0,undefined转换后的值为NaN。
5.Js中的this是如何工作的?
①普通函数指向函数的调用者
②箭头函数指向函数所在的作用域
③浏览器默认指向window
6.JS中的定时器有哪些以及它们的区别?
setTimeout()、setInterval()
前者只调用一次,后者会不断调用函数直到被清除或窗口被关闭。
7.200*200在不同分辨率屏幕下如何实现上下左右居中
<style>
#id{
position:absolute;
top:50%;
left:50%;
width:200px;
height:200px;
transform:translate(-50%,-50%)
}
</style>
8.Js去除字符串中的所有空格
str=str.replace(/\s*/g,"")
9.至少三种减少页面和加载时间的方法
①尽量减少Http请求
②优化图片,减小其尺寸
③避免空的href和src
④标明宽度和高度
10.以前端开发角度出发,做好SEO需要考虑什么?
①关键词
②页面质量
③站点活跃性