字节前端实习二面
重排、重绘
浏览器的渲染过程:根据html文件创建dom树,根据css文件创建css树,并且将二者合并成为渲染树,然后根据元素的位置相关属性确定元素位置,再根据元素的其他属性绘制元素。当元素的位置属性发生改变时发生重排,当元素的其他属性发生改变时发生重绘。
说说es6,es7
箭头函数和普通函数区别
this指向不同、有无arguments、有无prototype
async和defer
async:异步下载js文件,下载后立即执行,如果有多个文件,不保证执行顺序;defer:新开一个线程下载js文件,页面渲染完成后再执行。如果有多个文件,按照文件顺序执行。都只能对外部文件生效,内联文件不生效。
prototype和proto
每个函数都有一个prototype属性,默认指向空对象;以A函数为构造函数创建的对象有一个proto属性,指向A函数的prototype属性
##Function的proto指向
指向Function的prototype(每个函数都是以Function为构造函数创建的对象,Function函数也不例外,所以指向自身的prototype属性)
proto是非标准规范,后来的标准规范是什么?
Object.getprototypeof()和Object.setprototypeof()
看输出,this指向问题
es6新的简单数据类型
Symbol和BigInt
number类型的范围
proxy和Object.defineProperty区别
defineProperty不能直接监听对象,而是去监视对象内部的属性。defineProperty不能监听数组变化,需要重写数组的方法来达到目的。defineProperty不能监听es6新的数据对象Map和Set。
模块化
es6模块化和commonJs模块化的区别
webpack
https
交换对称密钥的过程