三大模块
学习方式
根据问题先思索自己的答案,有了答案后再继续学习,把老师的答案和自己的对比,最终组织成自己的语言
H5和C3方面
请你描述一下cookies,sessionStorrage和localStrong的区别
cookies:是网站用来标记用户身份的一段数据,通常情况下是一段加密字符串,默认情况下只有同源http请求中携带
sessionStorage:浏览器本地存储的一种方式,以键值对的形式进行存储,数据会在浏览器关闭后删除
localStorage:一般不会被主动删除,数据会一直存在
display:none和visibility:hidden的区别
display:none会让元素完全从渲染树上消失,不渲染的时候不占据空间,visbility不会让元素从渲染书上消失,还会继续占据空间.
为什么要初始化css的样式
因为浏览器有兼容问题,不同浏览器对某些元素的默认样式是不同的,这些样式会影响到最终的布局,如果没有初始化,那么不同浏览器会存在页面的差异
什么是postcss有什么作用
是一个平台,可以使用一些插件来优化css代码
JS方面
原型和原型链是什么,有什么特点
谈谈对this对象的理解
this指向函数的直接调用者
如果有new关键字,那么指向的是new出来的对象
在事件中指向这个事件的触发的对象
谈谈你对webpack的看法
谈谈你对promise的理解
promise用来解决异步操作造成的回调地狱的问题
promise是一个构造函数,通过new关键字创建实例对象
构造函数接受一个函数作为参数,函数会立即执行,函数有两个参数,一个是resolve,和reject,如果一步操作完成是调用resolve函数,如果失败调用reject函数,
成功或失败可以通过then或者catch来接受,成功的话调用then里的函数,失败调用catch里的函数
null和undefined区别
undefined表示不存在这个值,他是一个变量的原始状态
null 是一个具体的值,只不过这个值为空而已
什么是同步,什么事异步,他们的区别是什么
同步:线程会被堵塞,等待任务返回结果
异步:线程不会被堵塞,任务完成的时候通知js引擎
什么是EventLoop
主线程执行完了之后到异步队列里找异步任务加入主线程执行
什么是bind,call,apply,以及区别
这三个都可以替换this的指向,call和apply都会让函数立即执行,只是参数不同,call接受一个参数序列,apply除了第一个参数外,需要接受一个参数数组,
bind参数和call一样,但是不会立即执行,会返回一个新的函数
typeOf和instanceOf的区别
typeof用来判断值的类型
instanceOf用来判断一个对象是否是另一个对象的实例
Vue方面
Vue的生命周期
vue实现双向绑定的原理
遍历被监听对象的属性,通过Object.defineProperty()监听getter和setter.这样可以追踪属性的变化,当属性变化时,进行通知