掘友等级
获得徽章 0
#挑战每日一条沸点#
new操作符的实现原理:
1.创建了一个新的空对象
2.设置原型,将对象的原型设置为函数的 prototype 对象
3.让函数的 this 指向这个对象,为这个新对象添加属性
4.判断函数的返回值类型,如果是值类型,返回创建的对象。如果是引用类型,就返回这个引用类型的对象
#挑战每日一条沸点#
vue的基本原理:vue实例创建的时候,vue会遍历data中的属性,用的是Object.defineProperty(vue3使用的是proxy )将它们转为 getter或者setter,并且在内部追踪相关依赖,每个组件实例都有相应的 watcher 程序实例,它会在组件渲染的过程中把属性记录为依赖,之后当依赖项的setter被调用时,会通知watcher重新计算,从而致使它关联的组件得以更新。
#挑战每日一条沸点#
常见的事件修饰符有哪些:
prevent :同 JavaScript 中的 event.preventDefault()一样 ,防止执行预设的行为(如果事件可取消,则取消该事件,而不停止事件的进一步传播)
self :只会触发自己范围内的事件,不包含子元素
stop:防止事件冒泡
capture :与事件冒泡的方向相反,事件捕获由外到内
#挑战每日一条沸点#
vue的优点:
1.轻量级框架
2.双向数据绑定,使数据操作更为简单
3.组件化,实现了 html 的封装和重用,在构建单页面应用方面有着独特的优势
4.运用虚拟dom:dom 操作是非常耗费性能的,不再使用原生的 dom 操作节点,极大解放 dom 操作
5.视图、数据、结构三者分离:使数据的更改更为简单,不需要进行逻辑代码的修改,只需要操作数据就能完成相关操作
6.运行速度更快:相比较于 react 而言,同样是操作虚拟 dom,但vue是轻量级框架,就性能而言, vue 存在很大的优势
#挑战每日一条沸点#
了解HTML在浏览器中的渲染过程:
解析HTML,生成DOM树
解析CSS,生成CSSOM树
将DOM树和CSSOM树结合,生成渲染树(Render Tree)
Layout(回流):根据生成的渲染树,进行回流(Layout),得到节点的几何信息(位置,大小)
Painting(重绘):根据渲染树以及回流得到的几何信息,得到节点的绝对像素
Display:将像素发送给GPU,展示在页面上。(这一步其实还有很多内容,比如会在GPU将多个合成层合并为同一个层,并展示在页面中
#挑战每日一条沸点#
instanceof的作用:判断构造函数的prototype属性是否出现在对象的原型链上
可以用来弥补 Object. prototype. toString. call()不能判断自定义实例化对象的类型,但是instanceof 只能用来判断对象类型,返回的是一个布尔值
#挑战每日一条沸点#
CSS预处理器种类:less、sass、stylus
预处理器的作用:更好地组织CSS代码,提高代码复用率,提升可维护性
#挑战每日一条沸点#
首屏加载的优化方案:
使用CDN加速,将通用的库从vendor进行抽离
Vue-Router路由懒加载(利用Webpack的代码切割)
Nginx的gzip压缩
如果使用了一些UI库,采用按需加载
Vue异步组件
服务端渲染SSR
Webpack开启gzip压缩
如果首屏为登录页,可以做成多入口
Service Worker缓存文件处理
#挑战每日一条沸点#
isNaN() 和 Number.isNaN()这两个函数之间的区别:
1.isNaN() :通过Number方法把参数转换成数字类型,如果成功,返回false,如果不成功,就返回true
只能用来判断参数是否能转成数字,不能用来判断是否严格等于NaN
2.Number.isNaN():用来判断一个值是否严格等于NaN,先判断传入的值是否为数字类型,如果不是返回false
#挑战每日一条沸点#
hasOwnProperty(propertyName)方法:对象自身属性中是否具有对应的值(原型链上的属性不会读取),如果是,返回true,否者false
下一页