【面试宝典】299- 每天5道题,温故而知新(2)

文章转载自公众号【前端FE】,作者 前端FE


本系列文章针对目前常见的面试题,仅提供了相应的核心原理及思路,部分边界细节未处理。后续会持续更新,希望对你有所帮助。



思考



这是今天的题目,你可以先思考一下,然后重点关注不熟悉的~


  • rem基本设置

  • 实现一个双向数据绑定

  • var、let 和 const 区别的实现原理是什么?

  • 谈谈你对TCP三次握手和四次挥手的理解.

  • 如何让 (a == 1 && a == 2 && a == 3) 的值为true?


逐个击破



6.rem基本设置 




   在手机端项目中,经常用到是rem单位,笔试的时候你能写出来吗?
// 基准大小	
const baseSize = 32;	
function setRem () {	
    const scale = document.documentElement.clientWidth / 750;	
    document.documentElement.style.fontSize = (baseSize * Math.min(scale, 2)) + 'px';	
}	
setRem();	
// 监听窗口变化	
window.onresize = function () {	
    setRem()	
};



7.实现一个双向数据绑定


Vue的双向数据绑定的原理相信大家也都十分了解了,主要是通过Object对象的defineProperty属性,重写data的set和get函数来实现的,主要还是来实现一个实例。

let obj = {}	
let input = document.getElementById('input')	
let span = document.getElementById('span')	
// 数据劫持和	
Object.defineProperty(obj, 'text', {	
  configurable: true,	
  enumerable: true,	
  get() {	
    console.log('获取数据了')	
    return obj['text']	
  },	
  set(newVal) {	
    console.log('数据更新了')	
    input.value = newVal	
    span.innerHTML = newVal	
  }	
})	
// 输入监听	
input.addEventListener('keyup', function(e) {	
  obj.text = e.target.value	
})



8.var、let 和 const 区别的实现原理是什么? 


var

let
const


9.谈谈你对TCP三次握手和四次挥手的理解


TCP三次握手:

  1. 客户端发送syn包到服务器,等待服务器确认接收。

  2. 服务器确认接收syn包并确认客户的syn,并发送回来一个syn+ack的包给客户端。

  3. 客户端确认接收服务器的syn+ack包,并向服务器发送确认包ack,二者相互建立联系后,完成tcp三次握手。

四次挥手就是中间多了一层 等待服务器再一次响应回复相关数据的过程。

640?wx_fmt=png




10.如何让 (a == 1 && a == 2 && a == 3) 的值为true?


const a = {	
   num: 0,	
   valueOf: function() {	
         return this.num += 1	
   }	
};	
console.log(a==1 && a==2 && a==3); // true


  1. 使用相等操作符,js会做强制类型转化

  2. 我们的对象每次调用valueOf()它的值会增加1

  3. (a==1 && a==2 && a==3) 当他们比较时,JavaScript会企图将对象转化成数字的类型,进行比较。

  4. 当要转化的是一个Object的时候,JavaScript会调用本身的valueOf()方法,这个时候就可以实现this.num += 1


恭喜你,又掌握了一个新技能~2_11.png


有任何问题都可以给我留言哦~


640

精彩文章


vue项目优化之旅


带你解析vue2.0的diff算法



leetcode系列之001-两数之和






END


640?wx_fmt=png

640?wx_fmt=png你点的每个赞,我都认真当成了喜欢
posted @ 2019-07-26 07:08  王平安  阅读(121)  评论(0编辑  收藏  举报