1. 为什么要初始化css?
避免浏览器差异,解决兼容问题
2. 网格布局
display: grid; grid-template-columns: 1fr 1fr 1fr
3. less的优点
可以兼容,可以嵌套,循环,运算,定义变量和继承样式(extend)
4. computed和watch的区别;computed和methods的区别
computed和watch: computed是计算缓存,需要return,第一次加载就监听 watch触发一次就执行一次回调,不需要return,可以设置immediate:true computed和methods: computed是响应式,调用值,引用的属性发生变化时才会计算 methods不是响应式,调用函数,每次被调用都要执行
5. vue列表中key的作用,以及能用index下标来标记吗
用来识别一个独立的元素,识别dom元素更准更快,优化diff算法,高效更新虚拟dom,区分同名元素 不能用i和index,因为不管数组顺序如何颠倒,index顺序都是0,1,2,3...从而可能会导致dom旧节点复用错误,做很多额外的工作或出现bug
6. 谈谈对promise的理解
解决异步编程回调地狱(传统解决异步编程的方式是通过回调函数,而回调嵌套过多会导致回调地狱(callbackhell))的一种解决方案,可以通过Promise的方式以同步的方式表达出来,从而解决代码臃肿和可读性差的问题。 程序有三种状态:pending(等待)、resolved(成功)、rejected(失败)。 Promise 的实例可以看做是一个状态展示器,我们可以将拥有状态及改变状态的业务通过Promise来实现,然后再结合async function进一步提升程序的可读性及易维护性 像前端很多库都是基于Promise封装的,比如axios,antd等,所以理解并且能使用它是一名合格前端所必备的技能 一般Promise我都用来接受ajax请求结果之后的回调以及图片的预加载(Promise.all)
7. http请求方式
get,post,put,delete,head,options,trace,connect。可以说常用的只有前四个,其它的了解不多
8. 常见http状态码
200,成功 301,临时跳转 302,永久性的重定向 304,请求成功,但是是从缓存中读取的,节省资源 403,请求的权限不够,或者该ip被封掉了 404,找不到请求的资源(最常见) 500,程序本身错误,也就是后端的问题,可以对他说,热烈的马
9. js是单线程吗
是的,单线程是指Js引擎执行Js时只分了一个线程给他执行,也就是执行js时是单线程的。
10. 异步方法
回调函数,事件监听,发布订阅(双向绑定用到),Promise,async/await,ajax,定时器延时器,then,catch,finally