12 道腾讯前端面试真题及答案整理
Posted 小生方勤
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了12 道腾讯前端面试真题及答案整理相关的知识,希望对你有一定的参考价值。
console.log(b.length);
console.log(b.toUpperCase());
```js
一般不直接使用封装对象(即通过new操作创建基本类型值),优先考虑使用“abc”和“42”这样的基本类型值,而不是new String("abc") 和 new Number(42)。4.拆封
如果想要得到封装对象中的基本类型值,可以使用valueOf()函数。
```js
//封装对象的拆封
var s = new String( "abc" );
var n = new Number( 42 );
var b = new Boolean( true );
console.log(s.valueOf());
console.log(n.valueOf());
console.log(b.valueOf());
8. 什么是堆?什么是栈?它们之间有什么区别和联系?
堆和栈的概念存在于数据结构中和操作系统内存中。在数据结构中,栈中数据的存取方式为 先进后出。而堆是一个优先队列,是按优先级来进行排序的,优先级可以按照大小来规定。完全 二叉树是堆的一种实现方式。在操作系统中,内存被分为栈区和堆区。栈区内存由编译器自动分 配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。堆区内存一 般由程序员分配释放,若程序员不释放,程序结束时可能由垃圾回收机制回收。
详细资料可以参考:《什么是堆?什么是栈?他们之间有什么区别和联系?》
9. isNaN 和 Number.isNaN 函数的区别?函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返 回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。
函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续判断是否为 NaN ,这种方法对于 NaN 的判断更为准确。
10. 什么情况下会发生布尔值的隐式强制类型转换?(1) if (..) 语句中的条件判断表达式。(2) for ( .. ; .. ; .. ) 语句中的条件判断表达式(第二个)。(3) while (..) 和 do..while(..) 循环中的条件判断表达式。(4) ? : 中的条件判断表达式。(5) 逻辑运算符 ||(逻辑或)和 &&(逻辑与)左边的操作数(作为条件判断表达式)。
11. undefined 与 undeclared 的区别?已在作用域中声明但还没有赋值的变量,是 undefined 的。相反,还没有在作用域中声明 过的变量,是 undeclared 的。对于 undeclared 变量的引用,浏览器会报引用错误,如 ReferenceError: b is not defined 。但是我们可以使用 typeof 的安全防范机制来避免 报错,因为对于 undeclared(或者 not defined )变量,typeof 会返回 "undefined"。
12. 如何封装一个 javascript 的类型判断函数?function getType(value)
// 判断数据是 null 的情况
if (value === null)
return value + "";
// 判断数据是引用类型的情况
if (typeof value === "object")
let valueClass = Object.prototype.toString.call(value),
type = valueClass.split(" ")[1].split("");
type.pop();
return type.join("").toLowerCase();
else
// 判断数据是基本数据类型的情况和函数的情况
return typeof value
在看点这里
2020今日头条面试真题及答案整理&最新最全&持续更新中~~~~
大家好,我是好好学习天天编程的天天一个整天在互联网上爬虫的程序员,每天给大家分享学习干货的攻城狮
如果你关注腾讯面试题,请参考:
腾讯C++面试题【合集】来啦~持续更新中
下面是今日头条(字节跳动)2020年面试真题整理,持续更新,敬请关注!
一面-2020/03/29 -牛客网
- 进程和线程、上下文切换了什么、共享了什么
- 线程独占什么、切换时候内核做了什么
- 七层模型、协议有哪些、arp、rarp
- 为什么要有ip和mac、mac地址是如何来的
- C++多态、继承、重载
- Map的种类
- 数据库语句!!!count(*)、count(1)、count(字段)
- group by、order by、distinct
- 一条sql语句,数据库做了什么?
- 缺页了怎么办,物理内存如何分配的
- 虚拟内存和物理内存,为什么
- B+树和红黑树
- 红黑树和一般的平衡二叉树,增、删、改、查的过程和效率、时间复杂度
- 有序数组,找出和为k的数对
如果你有不会的面试题,这里会有面试题讲解的视频
干货 | 名企高频考点-C++ vector基本使用
每天的视频我都会汇总到一起:
IT笔试面试真题讲解合集
二面-2020/03/29-牛客网
- 数据库组合索引,最左前缀,为什么
- 数据库事务特性
- 隔离机制有哪些,分别避免了什么
- http1.x的新特性
- 长连接和短连接,什么时候会出现
- 长连接是如何维持的,心跳机制,如果一直想要连接着怎么办
- 输入一个url发生了什么
- 二叉树各层节点数,递归、非递归,时间、空间复杂度
- 静态多态和动态多态
- 重载和覆盖
- 聚簇索引和非聚簇索引,实现区别,索引存在哪里了
- 主键索引存放
- 死锁是什么,死锁发生了怎么办
- 什么叫字节流,什么叫数据报
一面-2020/03/29-牛客网
- 进程和线程、上下文切换了什么、共享了什么
- ? 线程独占什么、切换时候内核做了什么
- 七层模型、协议有哪些、arp、rarp
- 为什么要有ip和mac、mac地址是如何来的
- C++多态、继承、重载
- Map的种类
- 数据库语句!!!count(*)、count(1)、count(字段)
- group by、order by、distinct
- 一条sql语句,数据库做了什么?
- 缺页了怎么办,物理内存如何分配的
- 虚拟内存和物理内存,为什么
- B+树和红黑树
- 红黑树和一般的平衡二叉树,增、删、改、查的过程和效率、时间复杂度
- 有序数组,找出和为k的数对
二面-2020/03/29-牛客网
1.数据库组合索引,最左前缀,为什么
2.数据库事务特性
3.隔离机制有哪些,分别避免了什么
4.http1.x的新特性
5.长连接和短连接,什么时候会出现
6.长连接是如何维持的,心跳机制,如果一直想要连接着怎么办
7.输入一个url发生了什么
8.二叉树各层节点数,递归、非递归,时间、空间复杂度
9.静态多态和动态多态
10.重载和覆盖
11.聚簇索引和非聚簇索引,实现区别,索引存在哪里了
12.主键索引存放
13.死锁是什么,死锁发生了怎么办
14.什么叫字节流,什么叫数据报
一面-2020/03/09-牛客网
-
unordered_map和map区别
-
STL,vector,list
-
C++多态,虚函数机制
-
进程通信
-
进程线程差异
-
TCP三次握手四次挥手细节
-
算法题:最长不重复字串(HashTable,O(N))
- 面试官人非常好,有一些遗漏的知识点会给你指出来并且讲解,也很耐心。
二面-2020/03/15-牛客网
-
C++多态(看程序说结果,比较复杂,考了有关虚函数表,还考察了override和overwrite,虚函数内部调用非虚函数是调用指针类还是对象类)
-
二叉搜索树
-
B树b+树
-
红黑树删除算法
-
用互斥锁实现读写锁,写者优先
- 算法题:有100个方格,每个上面有毒蘑菇和体力蘑菇,毒蘑菇减体力体力蘑菇加体力,当前体力是能跳到的最远距离,求是否能跳到最远方格,如果可以,求落在第100格上的最大剩余体力
三面-2020/03/17-牛客网
-
服务方法调用
-
RMI/RPC
-
序列化/反序列化
-
10亿找Top10000,需要考虑分片,如果用最小堆需要考虑高效合并
-
要考虑等待时间且带有优先权的打印机,设计数据结构使打印任务高效
-
二十四点牌
-
在三面开始的时候面试官问了能够实习的时间和想要实习的地点,猜测可能是leader直接面试(最后也正好去了这个面试官在的城市),人很和善,不过问题都不是我准备过的基础题型,碰到的时候还是有一点束手无策。
- 其实准备字节跳动的面试还是需要着重准备基础部分(数据结构、算法、操作系统、计算机网络),另外对做算法题的要求很高,如果在看到题目的时候能直接给出这个题目的最优时空复杂度解法,面试官对你的评价会很高。如果基础知识比较扎实了,可以看看网络上的面试经验,找找自己不会的知识点,查漏补缺。
一面-2020/03/24-牛客网
- 首先自我介绍
- 开篇直接做题,时间戳转换成日月日时分秒~继续讨论其余的情况。。(此时面试官突然说,算了,不问了吧,再问下去感觉你都快崩溃了)
- 讨论实验室项目
二面-2020/03/24-牛客网
- 自我介绍
- 问了一些个人情况,如为啥选后台,什么时候能实习,一周能工作几天,base选的哪
- 因为做过一些后台项目使用java语言开发的所以就问的我java,,,抽象类与接口的区别
- 一些c++的基础问题,讲一下const,指针与引用,new与malloc,内联函数,如何防止内存泄露等问题
- 一些操作系统的问题,讲一下进程、线程、协程,锁机制,信号量,开锁时如何通知其他线程等问题
- 编程题,判断一棵树是否为二叉搜索树,首先用递归判断实现的,后来有问不递归怎么实现(判断每一个点的中序后继节点是否大于该点),如何空间复杂度O(1),讲了一下morris遍历的原理
三面-2020/03/24-牛客网
- 自我介绍
- 什么时候能来实习,下半年能不能也来,base是哪(感觉是照例问的都是)
- 简单的介绍了一下项目,使用的技术框架,自己的职责
- spring的iop,aop(楼主是cpp选手,有java的项目,但对原理这一块不太了解,所以就简单的说一下自己的理解,面试官也没有继续深问)
- http请求的全过程,顺带着问了http报文格式
- cpp中的struct内存大小问题,注意空struct的sizeof为1,和字节对齐
- 权力反转,问了一下部门的工作内容,实习转正率
一面-2020/02/06-牛客网
-
自我介绍和项目延伸
-
讲了寄存器/cache优化的项目(我的项目经历来自学校课程实验,太简单不提了,但是再简单的项目也可以“加加戏”包装一下,提前准备一些可拓展说的知识点)
-
顺着项目问:如果要做一个栈,用数组的结构还是链表?(提示)数组和链表哪一个遍历的效率高?(解答:数组。考虑cache缓存,所以是一组一组读进去的,而链表肯定是一个一个读的)
-
cache和内存关系?
-
循环展开知道吗?
-
weak_ptr了解吗(我讲了解决shared_ptr的循环引用问题,面试官就没再问了,应该算押到考点...
-
move语义?(讲了移动构造函数的原理)
volatile?
template了解吗 -
元编程(meta programming) 了解吗
-
原子操作?
-
回答了大概概念(要么执行完,要么什么都不做),接着问 ”它可以用来解决什么问题?“
-
TCP和UDP区别,UDP使用场景
-
算法:
[1 2 3 4 5 6] 排列成[1 3 5 2 4 6] (奇数排右边,偶数排左边,不考虑顺序)(剑指offer原题)我先用了冒泡,然后面试官问了时间复杂度(O(n2)),想了一会后改成O(n)
- 股票问题 ([1 3 5 7 2 3 ]是每日股票价格,买一次卖一次,问如何使得收益最大,即求最大差)
二面-2020/02/28-牛客网
- 自我介绍
-
算法:多个有序数组排序 vector<int> fun( vector<vector<int> > )
- 先用了priority_queue + int [], 面试官同意想法后开始写,但是后来发现复杂度太高,改成map+int[]。
三面-2020/02/28-牛客网
- 自我介绍
-
实现一下 memcpy() [要点:地址重叠]
- 对void*你了解什么?
- int a[10000000]会有什么问题?
- 如果想让一个函数在main函数之前执行,该怎么做?
一面 -2020/03/28-牛客网
- protobuf向后兼容怎么做的。
- C++里面虚函数怎么实现的。
- 智能指针。
- C++单例模式实现
- 别的不记得了,但算法题还是记得的,删除倒数第k个节点并返回头指针,leetcode接雨水。
二面 -2020/03/28-牛客网
- 这个上来就是做题,做的是头条去年的笔试题好像,搜字节跳动笔试,扑克移动就能搜到了。
- 然后是100只老虎,一只羊,羊最后会不会被吃的问题,只答对了关键的一小部分。
- 内核创建进程时会自动打开哪几个文件。
一面-2020/03/25-牛客网
- 上来都没有自我介绍,直接写代码
- 实现一个类,该类在一个局部作用域中修改外层作用域的值,当局域作用域结束的时候,恢复外层作用域原来的值(析构函数和泛型编程)
- 给你n,k求一个数x使得x的n次方等于k,x保留五位有效数字(二分)
- 多个区间,问区间的最大重叠数量
- 一个整数数组,求区间min乘以区间sum的最大值(前缀和+单调栈)
- 对C++的泛型了解吗,底层如何实现?
- 进程间通信的最快方式?
- 使用共享内存通信有什么缺点?
- 有什么想问我的?
二面-2020/03/25-牛客网
- socket编程服务端和客户端调用函数的流程
- accepted函数的参数和返回值分别是什么
- C++的打开文件函数freopen和系统调用的open函数关系和区别
- TCP的拥塞控制
- 网络中的丢包原因
- 现场写了一个多态,问各种情况的运行情况,内存对象模型,问的比较底层
- 一个整数数组,两个人一次分别从左边或者右边拿走一个数,两个人足够聪明,求第一个人拿到数的最大和
一面-2020/03/23-牛客网
- leetcode 152
- leetcode 853
二面-2020/03/23-牛客网
- 先二分出k的位子,然后这个位子开始二分左边有x个,那么右边就有k-x个,根据这个情形是否是我们需要的答案就可以判断了。
- 栈+dfs+时间戳标记
- 裸的ac自动机
如果有不会的面试题,请参考:
干货 | 名企高频考点-C++ vector基本使用
每天的视频我都会汇总到一起:
IT笔试面试真题讲解合集
以上是关于12 道腾讯前端面试真题及答案整理的主要内容,如果未能解决你的问题,请参考以下文章
2020今日头条面试真题及答案整理&最新最全&持续更新中~~~~
2020今日头条面试真题及答案整理&最新最全&持续更新中~~~~
2022最新Android面试题及答案整理(共计4176页PDF)包含腾讯字节百度小米阿里等大厂面试真题