🦸个人主页: 小卢要刷力扣题
🦸♂️ 作者简介: 大三学生,准备找工作的人儿
🕍 推荐一款找工作神器网站: 《牛客网》 |笔试题库|面试经验|实习招聘内推|
⛪ 系列专栏: 《前端面试题》
🐋 希望大家多多支持😘一起进步呀!
📝 如果文章对你有帮助的话,欢迎评论💬点赞👍收藏📂加关注
秋招正式批已经到来,相信不少小伙伴在为找工作而烦恼,对自己的实力不太自信,感觉好难找工作,不用怕,下面我来给各位推荐一个知名刷题网站《牛客》
牛客网,是一个集笔面试系统、题库、课程教育、社群交流、招聘内推于一体的招聘类网站。牛客是领先的数字化招聘求职解决方案服务商,牛客向企业提供校园招聘技术人才招聘一站式解决方案服务,主要包括招聘渠道服务(发校招岗位收简历) ,招聘SaaS工具服务(笔、面试 、群面系统 ),招聘传播服务(技术竞赛、广告、线上招聘专场、牛客职播。
牛客网题库中包含几万道题目,主要通过第三方购买和 UGC 的方式获得,牛客网先后尝试了直播和录播课,内容覆盖笔试题解析、面试技巧和机器学习等。
在里面可以与大家交流最近的面试心得,
如果不知道怎么面试的或者面试技巧掌握得不够牢固的小伙伴可以在牛客里面找面经来看,快速提升自己的面试能力,以更快的找到自己心仪的工作
今天我主要介绍的是公司真题
怎么快速了解市场上会出什么题目
最好的方法就是通过各个公司的题库来判断可能会面对的题目
那么在哪里找到各个公司的题库呢
牛客里面拥有各大公司的笔试,面试题,里面不乏有互联网大厂的企业真题,如果各位对某个公司特别感兴趣的话,可以专门刷那个公司的题库
我选的是前端工程师的题库,各位要选择好自己方向的题库,不要前端的去做后端ψ(*`ー´)ψ
今天我们来看看小米的笔试题(✪ω✪)
里面总共有22道题,10道单选题,10道多选题,2道问答题
先看第一题,这一题考的是git命令的使用
在公司工作的时候,我们不得不使用git,
因此各位同学对git的操作一定要掌握熟悉
这一题选的是B
解析:
git bisect是利用二分法的思想,来查找哪一次代码提交引入了错误
git stash 暂存
git rebase 合并
git fetch/clone 远程端下载至本地
再看第二题,这一题考的是valueOf和toString的区别
{}的valueOf()方法的值为{}
{}的toString()方法的值为[object object]
[]的valueOf()方法的值为[]
[]的toString()方法的值为""(空串)
因此这一题选A
这一题考的是基本排序的时间复杂度
冒泡,插入,选择的时间复杂度都是O(n2)
各位同学一定要对基本的排序算法有一定的了解
至少要了解各个排序的算法的时间复杂度和稳定性
这道题毫无疑问选B
这道题考的是URL的格式
不知道各位同学在网上冲浪的时候是否有注意浏览器上面的链接格式
这一题送分题,只要看一眼浏览器的链接就可以知道答案了
这一题选C
这一题考的是特殊字符
"<"对应的小于号;
'>’对应的是大于号
因此选B
这一题考的是CSS权重
基础题
!important的权重最大
其次是行内样式
ID选择器>类选择器>属性选择器>伪类选择器>伪属性选择器
选C
这一题考察的是面向对象的基本概念
面向对象编程特点:抽象、封装、继承、多态
因此选A
这一题考的是计算机网络里面的内容
网络七层协议下到上分别是7-应用层、6-表示层、5-会话层、4-传输层、3-网络层、2-数据链路层、1-物理层。
因此选B
在这一题中毫无疑问选的是B,美元符号是不能作为标识符的开头
D存在争议,基本数据类型不包括NaN,不知道是不是题目出错了还是其他原因
这一题一开始我看的时候也是一脸懵逼∑(っ°Д°;)っ
一开始就傻傻的以为是A,因为0.2-0.1=0.1,0.3-0.2=0.1,在实际中是毫无问题的
但是在JS中存在精确度的问题
计算机使用64位存储小数时,第1位为符号位,接着11位为指数位,后面52位为小数位,0.1和0.2在转换为小数时都存在无限循环现象,循环数都为”1100“。因此在最后一位会有0舍1入的现象,所以0.3-0.2!=0.1。因为两者的循环数相同,抵消后所以0.2-0.1=0.1
因此选D
这一题考察的是你对各个浏览器的熟悉度
最新的 Chrome 浏览器包括:1 个浏览器(Browser)主进程、1 个 GPU 进程、1 个网络(NetWork)进程、多个渲染进程和多个插件进程。
因此选A,B,C
这一题考察的是isNaN的用法,
isNaN函数接受一个参数,该参数可以是任何类型,而函数会帮我们确定这个参数是否“不是数值”。
isNaN()在接受一个值后之后,会尝试将这个值转换为数值。某些不是数值的值会直接转换为数值,例如字符串"10"或Boolean值。而任何不能被转换为数值的值都会导致这个函数返回true。
因此选AD
parseFloat()可以解析以数字开头的部分数字字符串(⾮数字部分字符串在转换过程中会被去除)。parseFloat()可以将字符串转换成浮点数;但同时,parseFloat()只接受⼀个参数,且该方法自动忽略前导0。
(1)字符串中的第⼀个⼩数点是有效的,⽽第⼆个⼩数点就是⽆效的了,因此它后⾯的字符串将被忽略。
(2)如果字符串包含的是⼀个可解析为整数的数(没有⼩数点,或者⼩数点后⾯都是零),parseFloat()会返回整数。
因此这四个选项都对
这一题又是考察我们对git的掌握程度
A选项中,先切换到master分支,再合并,然后上传,这是正确的
D选项中,在fix分支中,把master的代码先合并,然后再转换到master分支,再合并fix分支,最后上传
因此选AD
这一题考察的是对Linux命令的掌握
linux可以改变文件夹权限。在linux中,可以利用chmod命令来改变文件夹(目录)的权限;该命令可以控制用户对文件或目录的权限,语法“chmod [who]
chown 将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户 ID,组可以是组名或者组 ID,文件是以空格分开的要改变权限的文件列表,支持通配符。
因此选BD
A和B的概念说反了
引用类型的变量名和指针存在栈中,引用类型的值(也就是对象)存在堆中
基础数据类型的复制是直接拷贝,也就是创建一个副本
引用类型的浅拷贝是复制指针,复制后和复制前的指针都是一样的
因此选CD
该题考察的是正则表达式的应用
\d是匹配任何数字 (阿拉伯数字)。相当于 [0-9]
{}是匹配多少个数
x+:将前一项“x”匹配 1 次或更多次。等价于{1,}
[\w-] 是字符集 \w 和 “-”(连字符)的并集
因此选BCD
使用Array构造函数创建数组可以传入一个数值表示数组的length,或者直接传入要保存的元素,逗号非元素会报错
因此选ABD
这一题考察的是数组方法的熟练程度
shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。
unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。
pop() 方法用于删除数组的最后一个元素并返回删除的元素。
push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
因此选AB
目前JS数据类型总共有8种:
Number
String
Boolean
Null
Undefined
Object
Symbol
BigInt
这一题是简单的荷兰国旗问题
只要思路就是把数组分为3个区域,怎么把数字都填好
如果当前数为0,则小于区扩大,index++
如果当前数为1,index++
如果当前数为2,大于区前一位与index交换,大于区扩大
function sort(nums) {
var red = 0;
var white = 0;
var blue = nums.length - 1;
while(white <= blue) {
if(nums[white] === 0) {
nums[white] = nums[red]
nums[red] = 0
red++
white++
}else if(nums[white] === 1) {
white++
}else if(nums[white] === 2) {
nums[white] = nums[blue]
nums[blue] = 2
blue--
}
}
return nums
}
直接贴代码了
简单的数字转换题
class Solution {
public static int romanToInt(String s) {
int nums[] = new int[s.length()];
for (int i = 0; i < s.length(); i++) {
switch (s.charAt(i)) {
case 'M':
nums[i] = 1000;
break;
case 'D':
nums[i] = 500;
break;
case 'C':
nums[i] = 100;
break;
case 'L':
nums[i] = 50;
break;
case 'X':
nums[i] = 10;
break;
case 'V':
nums[i] = 5;
break;
case 'I':
nums[i] = 1;
break;
}
}
int sum = 0;
for (int i = 0; i < nums.length - 1; i++) {
if (nums[i] < nums[i + 1]) {
sum -= nums[i];
} else {
sum += nums[i];
}
}
return sum + nums[nums.length - 1];
}
}
牛客是一个非常好用的网站,合理的利用牛客可以帮助我们快速的找到工作,
在牛客中不仅有丰富的题库,还有不少的内推机会,感兴趣的小伙伴可以来牛客看看