腾讯前端一面面经(IVWEB)

面试官很和蔼,都是对简历的深挖,重基础。

问答(45min)

  1. 自我介绍
  2. Vue通信机制有哪些
  3. 水平垂直居中实现
  4. 实现一个左边固定,右边自适应布局
  5. 跨域是啥?跨域有哪些?
  6. Vue父子组件的执行流程
  7. 浏览器一帧发生了啥?
  8. 原生Ajax实现
  9. let,const,var区别
  10. 怎么实现const里面的属性不能修改?
  11. Promise.all() 怎么实现?
  12. 原型链是啥?
  13. new的原理
  14. this的指向有哪些?
  15. 怎么改变this的指向?
  16. call、bind()、apply() 区别
  17. Vue数据响应式原理
  18. css盒子模型、BFC
  19. 父元素高度塌陷解决方案
  20. requestAnimationFrame/requestIdleCallback
  21. session、cookie、localStorage 、sessionStorage
  22. HTTP强缓存和协商缓存
  23. 有缓存返回的状态码(200)
  24. 页面布局响应实现?(媒体查询)
  25. http网络状态码有哪些
  26. 301和302的区别
  27. 前端安全XSS、CSRF
    非全面(有些想不起来了)

编程题 (20min)

  1. JSONP实现
function Jsonp(src){
  var script = document.createElement('script')
  script.src = src
  document.getElementsByTagName('head')[0].appendChild(script)
}
  1. 大数相加
 // input: a,b (string)
 //output: string
function bigAdd(a,b) {
	let aLen = a.length
	let bLen = b.length
	let len = aLen > bLen ? aLen : bLen //取最长的字符串
	//以 0 补位
	if(aLen > bLen){
		var str = ''
		for(var i = 0; i < (aLen - bLen); i++) {
			str += '0'
		}
		b = str + b
	}else{
		var str = ''
		for(var i = 0; i < (bLen - aLen); i++) {
			str += '0'
		}
		a = str + a
	}
	//反转字符串,从个位开始计算
	a = a.split('').reverse()
	b = b.split('').reverse()
	//字符串转number
	a = a.map((value,index)=>{
		return parseInt(value)
	})
	b = b.map((value,index)=>{
		return parseInt(value)
	})
	let carryAdd = 0  //进位
	let res = []
	for(var i = 0; i < len; i++) {
		if(a[i] + b[i] + carryAdd >= 10) {
			res[i] = a[i] + b[i] - 10 + carryAdd
			carryAdd = 1
			if(i == len - 1) res[i + 1] = 1 //最后一位进位
		}else{
			res[i] = a[i] + b[i] + carryAdd
			carryAdd = 0
		}
	}
	return res.reverse().join('')
}
console.log(bigAdd('369222222','359222222'))
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值