前端面经(3)

1.原型链:

        原型链指的是原型对象创建过程的历史记录,当访问一个对象中某个属性时,会先去该对象的本身属性上去查找,如果没有找到则去该对象的_proto_隐式原型上查找,也就是该构造函数的prototype,如果没有找到,则去该构造函数的prototype的_proto_上查找,这样一层一层向上查找就会形成一个链式结构。

        每个对象都有默认属性prototype,其中包括constructor和_proto_,constructor指的是该对象的类型,_proto_指的是该对象的原型。

2.js的数据类型:

基本数据类型:string,number,boolean,undefined,null

引用数据类型:array,function,object

检测数据类型的方法:

        1)typeof :该方法只能检测基本数据类型,但typeof null的结果是object

        2) instanceof:该方法只能检测通过new关键字去创建的数据类型

        3)constructor:该方法同typeof一样,只能检测基本数据类型

        4)Object.prototype.toString.call():能检测所有数据类型

3. script标签中两个属性async和defer的区别:

async属性表示后续文档的加载和渲染和js脚本的加载和执行是并行执行的,而defer属性表示后续文档的加载和js脚本的加载是并行执行的,但js脚本的执行要等到文档中所有元素都被解析完成后才能进行。

4.重排和重绘

重排或回流(reflow):当dom变化影响了元素的几何信息,浏览器需要重新计算元素的几何属性,并将其安放在界面中正确的位置,页面重新布局,重新排列元素。

重绘:元素的外观样式发生了改变,但不影响页面布局,将修改元素外观样式的过程就做重绘。

如何触发重排和重绘?

        1)增加、删除、更新dom结点

        2)使用display:none隐藏dom结点,触发重排和重绘

        3)使用visibility:hidden隐藏dom结点,触发重绘

        4)给dom结点增加动画

        5)添加一个样式表,调整样式属性

        6)用户行为,比如:调整窗口大小、字号大小,滚动页面等

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值