前端知识每日小拷问 001

2019年07月05日 星期五 深圳天气 晴


准备接收大前端形法的考验吧!?每日5题,直击你的心里 ~~
仓库地址:https://github.com/RiversCoder/fontend-question-ten-everydaycss

  1. prototype__proto__的关系是什么?

prototype__proto__都指向原型对象;一个是原型,一个是原型链,原型建立可继承的方法和属性,原型链访问其构造方法的原型对象;
补充:
全部对象都有__proto__属性,函数这个特殊对象除了具备__proto__属性,还有特有的原型属性prototypeprototype对象默认有两个属性,constructor属性和__proto__属性。prototype属性能够给函数和对象添加可继承的方法、属性,而__proto__是查找某函数或对象的原型链方式。这个属性包含了一个指针,指回原构造函数html

  1. meta viewport 的理解 ?
  • 参数:widthinitial-scaleminimum-scalemaximum-scaleheightuser-scalable前端

  • layout viewport:经过document.documentElement.clientWidth来获取git

  • visual viewport: 经过document.documentElement.innerWidth来获取github

  • ideal viewport:deal viewport 是一个能完美适配移动设备的 viewportweb

  • 参考地址:http://www.javashuo.com/article/p-cfhgjpnu-bv.htmljson

  1. 域名收敛与域名发散是什么?
  • 域名收敛:又名DNS优化,将静态资源放在一个域名下
  • 域名发散: http 静态资源采用多个子域名,目的是充分利用现代浏览器的多线程并发下载能力
  1. float和display:inline-block的区别是什么?

display是在html文档中的一个显示状态,float是针对块级元素的位置的浮动浏览器

  1. 前端优化策略列举

(1) 网络方面缓存

  • 尽量减小http的请求
  • 图片脚本样式表等静态资源优化,压缩打包,雪碧图,使用base64,图标使用字体代替等
  • 开启缓存:DNS缓存、CDN部署和缓存、http缓存
  • 不要滥用 web字体

(2) DOM操做方面网络

  • css的文件放在头部,js文件放在尾部或者异步
  • 减小频繁的DOM操做
  • 作动画,尽可能使用css动画
  • 合理使用事件代理
  • 在移动端使用touchstarttouchend代替click
  • 开启GPU渲染加速

(3) 数据方面

  • 图片加载,最好懒加载,有进度条预渲染最好
  • json数据格式交互
  • 经常使用数据缓存处理