字节跳动 前端 面经 实习-基础架构

这篇博客分享了作者在字节跳动前端面试的经历,涉及Node模块加载流程、Vue的$nextTick、微信小程序rpx、跨域处理、CSS属性比较以及编程和算法题目。面试官关注技术原理、问题解决能力和实践经验。
摘要由CSDN通过智能技术生成

面试时间:2021.7.21

一面

  • node的模块加载流程
  • commonjs和es6模块加载的区别
  • vue的$nextTick函数的作用 底层如何实现的?
    文档描述:在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。
    底层实现:通过MutationObserve、Promise.then()、setImmediate实现监控DOM变更及执行回调函数,若环境不支持则使用setTimeout实现
  • 问了一下项目的爬虫实现
  • 说一下微信小程序的rpx,那计算出来0.5px就渲染0.5px吗
    rpx详见小程序文档。
    0.5px会被渲染为1px(1px已是最小单位)
    如果需要显示0.5px可以使用transform:scale(0.5)来缩放1px
  • 跨域方式,如果跨域发生,服务器返回的是什么呢?
    跨域方式详情百度。
    如果发生了跨域,服务器仍然会正常返回(code = 200)
    跨域只是浏览器的安全限制,服务器正常返回的数据被浏览器屏蔽而已
  • display:none 和visibility:hidden区别 是否存在与dom tree? 将他们显示出来会发生什么?
    1、空间占据。前者不占据空间位置,后者仍然占据空间位置,只是被隐藏。
    2、属性继承。前者连同子元素一同消失。而后者子元素也会继承hidden属性,但若给子元素增加visibility:visible则重新可见。
    3、回流重绘。前者的改变会触发回流重绘,后者的改变只会触发重绘。
    两者都存在于DOM Tree中
  • 完成一个计算梯度税费的函数
// Calculate the tax owed on a salary.
// The tax rate will be
// Tax Table format - Array of objects (not sorted)
// object properties
// tax   - int : percentage to tax at
// start - int : The dollar to start taxing
// end   - int : The dollar to stop taxing

//tip:taxes是taxTables的示例。数组中税收对象乱序给出
taxes = [
{
   
"tax": 10,
"start": 1,
"end": 1000
}, {
   
"tax": 50,
"start": 5001,
"end": 10000
}, {
   
"tax": 35,
"start": 1001,
"end": 5000
},
];
function taxOwed(salary, taxTables){
   
	let result = 0;
	//面试官提醒尽量不要修改入参,所以新创建一个tabTables副本
    let taxs = Array.from(taxTables);
    //将税表升序排列
    taxs.sort((a,b)=>{
   
       return (a.start - b.start)
    })
    for(let i=0; i<taxs.length; i++){
   
        if(salary > taxs[i].start){
   
            if(salary < taxs[i].end){
   
                result += (salary - taxs[i].start)*taxs[i].tax/100;
            }else{
   
                result += (taxs[i].end - taxs[i].start)*taxs[i].tax/100<
字节跳动是一家知名的互联网公司,提供多样化的在线服务和产品。在字节跳动的go实习面经中,通常会包含以下几个方面的内容: 1. 基础知识测试:字节跳动会对应聘者的基础知识进行测试,例如数据结构、算法、计算机网络等方面的知识。这一部分的问题可以是选择题、填空题、编程题等形式,用于评估候选人的基础水平。 2. 项目经历和实践能力评估:字节跳动也会关注应聘者的项目经历和实践能力,询问候选人在实习或学校项目中担任的角色、面临的挑战、解决方案以及取得的成果。通常会以开放性问题形式出现,侧重考察候选人的思维能力和解决问题的能力。 3. 技术深度面试:在技术深度面试环节,字节跳动会聚焦于候选人在Go语言相关技术方面的掌握情况。例如对候选人对Go语言的理解、熟练程度以及应用经验进行详细的询问和讨论。 4. 沟通与团队合作:字节跳动非常注重候选人的沟通能力和团队合作能力。所以在面试过程中,他们可能会提问候选人在团队合作中的角色、如何和其他成员协作以及如何解决团队遇到的问题等。 5. 自我介绍和问题回答:面试的最后要求候选人进行自我介绍,这是一次展示个人的机会。同时,面试官还可能询问一些与实习相关的问题,了解候选人对实习的期望、目标以及对字节跳动的了解程度。 综上所述,字节跳动的go实习面经主要包括基础知识测试、项目经历和实践能力评估、技术深度面试、沟通与团队合作以及自我介绍和问题回答等环节。应聘者需要准备充分,熟悉Go语言相关知识,并能够展示自己的技术能力、项目经历以及团队合作等方面的能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值