一.页面的渲染过程?
1.把html标签 生成dom树
2.把css承载 cssom树
3.遇到JavaScript停止渲染,先执行JavaScript
4.构造-->布局-->绘制-->呈现
二.如何避免js停止页面的渲染?
1.defer 或async 结合script的src属性使用
2.可以在script标签上 加上 defer async
3.defer :js的加载,不会停止页面的渲染,当js加载完成后,等页面加载完成
4.async js的加载,不会停止页面的渲染,当js加载完成后,就理解执行
三.ES6新增哪些新的特性:
let,const,箭头函数,默认参数,扩展运算符,结构解析,对称赋值
// 类,继承,Set..
// let 和const 的区别?
// 相同点: 实现块级作用域
// 如何用js实现let和const?
// let 采用 闭包的方式
// const 采用 Object.defineProperty
箭头函数,this指向上下文(context)对象,环境对象
// 箭头函数不能被实例化
// 箭头函数不能被call,apply,bind改变this指向
扩展运算符...
// 拷贝数组,合并数组,拷贝对象...
//对对象增强
Object.is()
// object.assgin() 对象的拷贝和对象的合并
// 对象属性和方法的简写
// 类和继承
// class,extends
//Set 集合,不会有重复
//Symbol 表示唯一的标识符
//...
四.什么是节流,什么是防抖?
//节流
// _.throttle(回调函数,时间)
// 同一时间内,执行次数变少
//防抖
// _.debounce(回调函数,时间)
// 本应该在一定的时间范围触发一次,如在该时间内又被激活,
// 就会延迟下一次执行的时间
//节流和防抖,都是为了稀释执行次数
五.求某个字符串出现次数最多的字母?
方法1:
方法2:
利用数组的下标解决
//2.已知每个字符都会对应一个ASCII码,ASCII就相当于数组的下标
//3.找出最大的值,根据最大的值,找出下标,而下标就是ASCII,把ASCII转换成字符