途虎养车笔试+一面二面hr面

5.8 笔试

考试时间1.5h,有20道选择题,3道编程题,难度不大,力扣简单题

5.16 一面

  • 自我介绍
  • 介绍一个感觉最好的项目
  • 介绍项目的难点
  • 答案tensorflow人脸识别+JWT后端权限验证
  • 为什么使用tensorflow,不使用face-api等封装好的?
  • 冗余、轻便,自己封装好控制,不太重
  • 前端为什么选择react不使用vue?对比一下两个框架
  • 从设计思路、底层编译、写法、优势等方面结合:react是单向数据流,vue是双向数据绑定,经典mvvm框架;
  • react是all in js,vue使用模板,html,css,js结合;
  • react是类式的写法,api很少,而Vue是声明式的写法,通过传入各种options,api和参数都很多。所以react结合typescript更容易一起写,Vue稍微复杂;
  • vue模板和渲染函数的弹性选择, 简单的语法及项目创建, 更快的渲染速度和更小的体积,react更适用于大型应用和更好的可测试性,同时适用于Web端和原生App, 更大的生态圈带来的更多支持和工具 。
  • flex:1
  • flex-grow 和 flex-shrink、flex-basis 的简写,默认值为 0 1 auto。flex:1为1 1 auto
  • 垂直居中
  • 文字(line-height)、display: flex、transform:translate(0, -50%)、align-items:center
  • 前端做了哪些优化?
  • 压缩Gzip、缓存、大图切割、lazy、CDN、减少重排重绘
  • CDN是什么?原理
  • 动态选择最近的服务器进行服务提供
  • CSS层有什么优化?或者做了哪些工作
  • 渐进增强
  • BEM规范
  • 深拷贝手写
  • 底层级:JSON.parse(JSON.stringify(obj))
  • 深度嵌套:递归
  • new原理?手写
function myNew(fn, ...args){
	let ojb = Object.create(fn, prototype)
	let res = fn.call(obj, ...args)
	if(res && (typeof res === 'object' || typeof res === 'function')){
		return res
	}
	return obj
}

  • 数据类型判断
  • typeof、instanceof、Object.prototype.toString.call()
  • 扩展细说区别
  • js数据类型?区别
  • Number(数字),String(字符串),Boolean(布尔),Symbol(符号),null(空),undefined(未定义)在内存中占据固定大小,保存在栈内存中; Object(对象)、Function(函数)。其他还有Array(数组)、Date(日期)、RegExp(正则表达式)、特殊的基本包装类型(String、Number、Boolean) 以及单体内置对象(Global、Math)等 引用类型的值是对象 保存在堆内存中,栈内存存储的是对象的变量标识符以及对象在堆内存中的存储地址。
  • 算法:链表反转
  • 反问
  • 部门方向、业务、技术栈、前景

5.17 约二面

5.18 二面

  • 互相自我介绍
  • 挑一个介绍项目
  • 细嗦tensorflow,做了哪些工作?模型怎么训练的
  • 谁挑选的技术栈?为什么选择tensorflow?后端承担了哪些工作?前端有多少人,怎么分工的
  • 场景题:100000条数据渲染
const renderList = async () => {
    const list = await getList()
    const total = list.length
    const page = 0
    const limit = 200
    const totalPage = Math.ceil(total / limit)
    const render = (page) => {
        if (page >= totalPage) return
        setTimeout(() => {
            for (let i = page * limit; i < page * limit + limit; i++) {
                const item = list[i]
                const div = document.createElement('div')
                div.className = 'sunshine'
                div.innerHTML = `<img src="${item.src}" /><span>${item.text}</span>`
                container.appendChild(div)
            }
            render(page + 1)
        }, 0)
    }
    render(page)

  • promise
  • 异步编程的一种解决方案,pending(等待态),fulfiled(成功态),rejected(失败态)
  • eventloop?有什么宏任务微任务
  • 区分微任务宏任务
  • 有微任务队列的代表就是.then,MutationObserver,宏任务的话就是setImmediate setTimeout setInterval
  • this
  • 普通函数调用:通过函数名()直接调用:this指向全局对象window(注意let定义的变量不是window属性,只有window.xxx定义的才是。即let a =’aaa’; this.a是undefined)
  • 构造函数调用:函数作为构造函数,用new关键字调用时:this指向新new出的对象
  • 对象函数调用:通过对象.函数名()调用的:this指向这个对象
  • 箭头函数调用:箭头函数里面没有 this ,所以永远是上层作用域this(上下文)
  • apply和call调用:函数体内 this 的指向的是 call/apply 方法第一个参数,若为空默认是指向全局对象window。
  • 函数作为数组的一个元素,通过数组下标调用的:this指向这个数组
  • 函数作为window内置函数的回调函数调用:this指向window(如setInterval setTimeout 等)
  • 对象扁平化
function flattenObject(obj, prefix = '') {
  return Object.keys(obj).reduce((acc, k) => {
    const pre = prefix.length ? prefix + '.' : '';
    if (typeof obj[k] === 'object' && obj[k] !== null) {
      Object.assign(acc, flattenObject(obj[k], pre + k));
    } else {
      acc[pre + k] = obj[k];
    }
    return acc;
  }, {});
}


  • 堆栈溢出
  • JavaScript 的函数调用栈有一定大小限制,当函数调用的嵌套层数过多时,会导致栈溢出错误。
function recursive() {// 递归出现栈溢出
    recursive();
}
recursive();

  • JavaScript 的堆也有大小限制。堆是用来存储变量和对象等数据的一段内存空间,当我们创建了大量数据或者数据太大而超过了堆的容量时,就会触发堆溢出错误。
let arr = [];
while (true) {// 堆溢出
  arr.push('a');
}

  • addeventlistener第三个参数作用
  • 第三个参数是用来规定是采用捕获类型还是冒泡类型。默认false。如果参数为false,那么就采用冒泡型事件,那么事件就会从内部往外层触发。如果参数为true,那么就采用捕获型事件,那么事件就会充外层向内触发。

5.18 约三面

5.19 hr面试

  • 薪资
  • 手头offer
  • 地点
  • 学习能力
  • 介绍一个简历
  • 为什么选择前端
  • 未来发展计划
  • 介绍途虎

5.22 电话沟通

5.22 下午offer

#途虎养车##途虎##秋招##春招#
全部评论
佬,后来拿了sp还是s s p
点赞 回复 分享
发布于 04-11 07:26 上海
这也太难了 不好好深度学 根本没机会
点赞 回复 分享
发布于 2023-09-06 18:45 云南
感觉我们应该是一批的,不过我因为二面面试官时间问题给我推后了几天。不知道是不是之前拒途虎的比较多 ,hr面完一个小时就电话沟通了,感觉比较缺人
点赞 回复 分享
发布于 2023-05-26 14:10 四川
佬,薪资是hr直接就开么,还是自己说个范围啊
点赞 回复 分享
发布于 2023-05-26 10:53 陕西
笔试考的哪部分比较多
点赞 回复 分享
发布于 2023-05-26 10:27 江苏
大佬牛啊,问下这公司加班多吗
点赞 回复 分享
发布于 2023-05-26 10:24 湖北
当天约三面?
点赞 回复 分享
发布于 2023-05-26 00:33 广东

相关推荐

F1ame_h:农行比大厂测开难多了,尤其二线农研、强势省分这些
投递中国农业银行等公司10个岗位
点赞 评论 收藏
分享
一面&nbsp;:4.21️⃣自我介绍2️⃣为什么选择测试开发3️⃣了解哪些测试理论4️⃣了解哪些测试方法呢5️⃣百度网盘的业务架构是什么样的?(说了我所在的业务线:一个相册&nbsp;APP)6️⃣主要介绍一下&nbsp;AI&nbsp;数字人模块的主要功能(结合&nbsp;5&nbsp;引入)7️⃣业务的测试难点在哪里?8️⃣网盘业务的安全性风险有哪些?9️⃣假如涉及到权限管理的话,权限管理的话会有哪些权限问题?🔟如果要做越权测试的话,会怎样测试?十一:对文件做版本控制?怎样做最终一致性考虑?例如:对一个文件反复修改,每修改一次就会产生一个新的快照?对于上述场景怎样设计?针对十一回答的追问1️⃣日志管理时间戳,怎样确保是全的,怎样考虑?2️⃣redis本身有一定的局限性/瓶颈问题?怎样保证&nbsp;redis&nbsp;保证数据不会遗漏等等...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;十二:熟悉的语言是什么?Java&nbsp;和&nbsp;Python&nbsp;有什么区别?十三:Java&nbsp;的异常处理机制是什么样的?十四:性能测试的时候会关注哪些性能指标?十五:压测的&nbsp;QPS&nbsp;是怎样得到的?也就是:压测的目标是什么样的&nbsp;?比如期待这个接口的返回时间预期这种?接口耗时的中位线等等指标怎样判断是否符合预期和要求?十六:(压力测试时候)内存会关注哪些指标十七:Java&nbsp;线程同步的方式?十八:Java&nbsp;的注解有什么作用十九:做题:将一个给定字符串s根据给定的行数numRows,以从上往下、从左到右进行Z字形排列。比如输入字符串为&quot;PAYPALISHIRING&quot;行数为3时,排列如下:PAHN&nbsp;APLSIIG&nbsp;YIR然后输出按照需要从左往右逐行读取,产生出一个新的字符串,比如:&quot;PAHNAPLSIIGYIR&quot;输入:s=&nbsp;&quot;PAYPALISHIRING&quot;,&nbsp;numRows&nbsp;=&nbsp;3输出:&quot;PAHNAPLSIIGYIR&quot;隔了两三天左右约二面:4.111️⃣mysql&nbsp;读写锁,假如是一个记账系统,记录快照,是采用什么(selecr...for&nbsp;update)2️⃣spring&nbsp;AOP&nbsp;场景3️⃣手写选择排序,讲思路4️⃣Java线程池的概念,应用场景5️⃣code&nbsp;review&nbsp;还可以发现哪些问题?可以自定义代码审查的&nbsp;bug&nbsp;嘛?好像没太懂这个问题6️⃣实习的压测场景,一定要逐步增加压力测试性能瓶颈嘛?有没有其他的办法进行性能瓶颈的评估?压测的场景是否会过于极端?(我说我们是站在用户最活跃的时间段来评估的,这个时间段&nbsp;1000&nbsp;名用户大约有&nbsp;700-800&nbsp;人都在点击“性别变更”按钮,至少变更一个数字人,我们测试的是最极端的情况,如果最极端的情况都没有问题了,接下来也不会有太大的问题)7️⃣实习时候项目的风险点是怎样发现的?8️⃣实习项目除了风险点以外,还有没有发现一些功能上面的&nbsp;bug?两面所有问题几乎都是完美回答4.16&nbsp;寄😢疑似综合对比被卡学历字节核心部门综合对比时候确实容易被卡学历比如抖音,TikTok双非本还是避开核心部门投递了,进了字节其实差别不大呢😊
查看58道真题和解析
点赞 评论 收藏
分享
评论
8
31
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务