1、cookie sessionStorage localStorage区别:
共同点:都是浏览器本地存储;数据共享都遵循同源原则。
不同的:cookie是由服务器端生成写入,而sessionStorage、localStorage是由前端写入;cookie时间限制在服务器端生成时设置,sessionStorage在页面关闭时清除,localStorage只能手动清除;cookie存储空间较小,而sessionStorage、localStorage存储空间较大。
2、JS数据类型:
number、string、boolean、bigint、symbol、null、undefined、object。前七个为简单数据类型(直接存放在栈中),最后一个为引用数据类型(栈中存放起始地址,堆中存放实体)。
3、闭包:
一个函数A返回另一个函数B,函数B中使用了函数A中的变量,这就形成了一个闭包。由于函数B使用了函数A中的变量,导致该变量在函数A执行完毕后不会被垃圾回收器回收,所以造成了内存泄露,而内存泄露过多就会导致内存溢出的问题。
4、Promise:
Promise即异步微任务,解决地狱回调的问题。特点:对象有三种状态:等待(初始状态)、成功、失败;一旦状态由等待的初始状态改变了,就不会再变;resolve方法传入的参数是then中回调函数的参数;then方法和catch方法只要不报错返回的都是一个成功状态的promise对象。
5、跨域:
即当前页面的请求地址和当前页面的地址有协议、域名或者端口号不同,都会触发跨域。好处:浏览器为了页面的安全,所以提出了同源协议策略。解决:前端进行代理(jsonp、postmessage、node中间件)、后端通过CORS设置允许跨域(nginx反向代理)。
6、BFC(块级格式化上下文):
web页面一块独立的渲染区域,里面的子元素不会影响外面的元素排列,内部的盒子会在垂直方向上一个接一个的排列,并且相邻的两个盒子垂直方向上的margin会重叠。BFC可以用来清除浮动,但是常用的清除浮动的方式是overflow设置为hidden,其他的BFC方式会影响其他元素的排列。
7、JS判断变量的类型:
typeof (无法分辨null和对象类型)、Object.prototype.toString.call() (可以判断任意变量的类型)、instanceof (判断类型是否在实例的原型链上,只适用于引用数据类型)。
8、样式优先级规则:
!important > 行内样式 > 内链样式 > 外链样式 > id选择器 > 类选择器 > 标签选择器 > 复合选择器 > 通配符 > 继承样式。
9、: