你好,我是星辉,幸会幸会。
今天我参加了字节跳动的前段视频第一次面试,把它记录总结下来,希望能够对大家带来帮助。
投递简历后过了一段时间接到约面小姐姐的电话,了解你的具体的实习时间段,和你约定面试时间。你确认后小姐姐挂电话。过段时间hr给你发视频面试的链接,是牛客网用来面试的链接。
我在面试前准备以下几点东西,似乎都解决了面试的部分问题
快要面试了,第一次面试,有些紧张,但还是像平常考试一样,将总结下来的面试题目总结、前端遇到问题的总结又看了一遍,把自己做好的自我介绍熟悉的几遍,给自己亲近的朋友发条消息获得她的祝福,又站在电脑桌前活动了一下身子,头脑顿时清醒利索了许多。
由于紧张怕错过面试,早早的便坐在了电脑桌前。面试官迟到了一会,就给我发起了面试视频邀请,终于开始了。
迎面是一个挺帅气的哥哥,简单的打了一下招呼,就进入了自我介绍的环节。由于自我介绍我已经熟悉过几遍了,自我介绍的效果看起来效果还是不错的。
开始问我项目经历的细节以及自我介绍中的细节,由于项目经历确实是自己亲身经历过的事情,并且我一般项目完成时都会做一下总结,所以也能够答个头头是道。个人感觉上的,至于面试官怎么想的,我就不清楚了, 说不定是那种我就静静的看着你装逼的情况。
来了来了,开始问技术的问题了。
css3新增了一些属性,像flex,这是css3中很重要的改变,所以除了flex以外的垂直水平居中的技巧都是属于css2的。
- css2的水平居中技巧
将元素display为行内元素,再text-align:center;即可
或者
将块级元素定义一个宽度,再margin: 0 auto;即可
- css3的水平居中技巧
将元素display设为flex,再通过justify-content: center; 实现居中。
- css2的垂直居中技巧
单行内容的垂直居中可以通过设置相同height值和line-height值来实现。
多行内容的垂直居中且高度可变可以通过设置上下相同的padding值来实现。
行级盒子:小图标和标题对齐设置vertical-align: middle。
绝对定位:top:50%; left:50%;的方法,需要已知块级的宽高
- css3的垂直居中技巧
将元素display设为flex,再通过align-items:center;来实现。
TCP:面向连接、传输可靠(保证数据正确性,保证数据顺序)、用于传输大量数据(流模式)、速度慢,建立连接需要开销较多(时间,系统资源)
UDP:面向非连接、传输不可靠、用于传输少量数据(数据包模式)、速度快
TCP和UDP协议的一些应用例子:
TCP一般用于文件传输(FTP HTTP 对数据准确性要求高,速度可以相对慢),发送或接收邮件(POP IMAP SMTP 对数据准确性要求高,非紧急应用),远程登录(TELNET SSH 对数据准确性有一定要求,有连接的概念)等等;UDP一般用于即时通信(QQ聊天 对数据准确性和丢包要求比较低,但速度必须快),在线视频(RTSP 速度一定要快,保证视频连续,但是偶尔花了一个图像帧,人们还是能接受的),网络语音电话(VoIP 语音数据包一般比较小,需要高速发送,偶尔断音或串音也没有问题)等等。
原文:https://blog.csdn.net/buster2014/article/details/40082109
网际层协议:IP协议、ICMP协议、ARP协议、RARP协议
传输层协议:TCP协议、UDP协议
应用层协议:FTP、Telnet、SMTP、HTTP、RIP、NFS、DNS
HTTPS即加密的HTTP,HTTPS并不是一个新协议,而是HTTP+SSL(TLS)。原本HTTP先和TCP(假定传输层是TCP协议)直接通信,而加了SSL后,就变成HTTP先和SSL通信,再由SSL和TCP通信,相当于SSL被嵌在了HTTP和TCP之间
2XX系列:代表请求已成功被服务器接收、理解、并接受。
200状态码:表示请求已成功,请求所希望的响应头或数据体将随此响应返回
201状态码:表示请求成功并且服务器创建了新的资源,且其 URI 已经随Location 头信息返回。
3XX系列:代表需要客户端采取进一步的操作才能完成请求,这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的 Location 域中指明。
301状态码:被请求的资源已永久移动到新位置。服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
302状态码:请求的资源临时从不同的URI响应请求,但请求者应继续使用原有位置来进行以后的请求。
304状态码:自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容。
4XX系列:表示请求错误。代表了客户端看起来可能发生了错误,妨碍了服务器的处理。
401状态码:请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。
403状态码:服务器已经理解请求,但是拒绝执行它。与401响应不同的是,身份验证并不能提供任何帮助,而且这个请求也不应该被重复提交。
404状态码:请求失败,请求所希望得到的资源未被在服务器上发现。
5xx系列:代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。
500状态码:服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。
503状态码:由于临时的服务器维护或者过载,服务器当前无法处理请求。
// 输出全为10
for(var i=0;i<10;i++){
setTimeout(function(){
console.log(i);
},50);
}
// 输出相应的输出
for(var i=0;i<10;i++){
(function(i){
setTimeout(function(){
console.log(i);
},50);
})(i);
}
隐性转换为: 1 + '1' = '11'
显性转换
Number("24 cccc");//结果:NaN
ParseInt("24 cccc");//结果:24
备注:Number的显性转换比较严格,若无法强转则直接报错
面试官后引伸了两个问题
1 + -'1' + 1 等于什么
等于 0 ,'1'前面的负号把其数字化,变为-1,则后值为1
'A' - 'B' 等于什么
NaN
1. 通过jsonp跨域
jsonp在页面上引入不同域上的js脚本文件实现请求不同域上的数据
(1) 通过script标签引入一个js文件
(2) js文件载入成功后会执行我们在url参数中指定的函数,并且会把我们需要的json数据作为参数传入
注:需要服务器端的页面进行相应的配合
2. 通过修改document.domain来跨子域
3. 使用window.name来进行跨域
window对象有个name属性,该属性有个特征:即在一个窗口(window)的生命周期内,窗口载入的所有的页面都是共享一个window.name的,每个页面对window.name都有读写的权限,window.name是持久存在一个窗口载入过的所有页面中的,并不会因新页面的载入而进行重置。
实现思路:先判断该变量是否为Number类型,以此来缩小范围,再判断该变量除以1后是否与原值全等,若全等则返回true,若不全等则返回false
LEFT JOIN 关键字会从左表那里返回所有的行,即使在右表中没有匹配的行
RIGHT JOIN 关键字会右表那里返回所有的行,即使在左表中没有匹配的行
在表中存在至少一个匹配时,INNER JOIN 关键字返回行
function quickSort(arr) {
if(arr.length<=1) {
return arr;
}
var s = Math.floor(arr.length/2);
var temp = arr.splice(s,1);
var left=[];
var right=[];
for(var i=0;i=temp) {
right.push(arr[i]);
}
}
return quickSort(left).concat(temp,quickSort(right));
}
面试官的突然一声“我这边没有什么问题了”,吓了我一跳,悬了悬了,我还想着跟他唠嗑两小时呢,唠嗑的感觉真好。
“我这边没有什么问题了,请等待hr的通知吧”