前言
因为被毁三方的原因,所以也没有春招的机会了,基本只能靠提前的校招和社招了,但是说实话校招反响为零,可能要等九月份了。但是华为OD的热情远超我想象,累积小十个华为OD的hr联系到我,也不知道这里面有什么底层逻辑(懂的大佬告诉我,拜谢)。
深圳(1-3年)笔试
发明笔试的也是神人了。
- rem和em。rem相对于根字体,em相对于当前字体。
- box-sizing属性。
- 判断是不是对象,是不是{}(里面没有属性)
function isEmptyObject(obj) { return Object.keys(obj).length === 0 && obj.constructor === Object; }
- 'I am delevoprer' 改成 'Delvoper am I'。(不懂,懂评,拜谢)
- 把3.1445四舍五入到3.15. (不懂,懂评,拜谢)
手写Once
function once(func) {
let called = false;
return function() {
if (!called) {
called = true;
return func.apply(this, arguments);
}
};
}
响应式布局
PC和IPAD就是一行三列,移动端就是一列三行。 我的思路就是媒体查询给外层div加上flex布局。
<div class="parent">
<div></div>
<div></div>
<div></div>
</div>
/* PC 端(屏幕宽度大于 1024px) */
@media (min-width: 1025px) {
.parent {
display: flex;
}
}
/* iPad 横屏(宽度在 768px 到 1024px 之间) */
@media (min-width: 768px) and (max-width: 1024px) and (orientation: landscape) {
.parent {
display: flex;
}
}
最后是算法题,就是十个评委给100张照片打分,去除最大值和最小值,返回结果。
我忘记去除最大值最小值了,直接三十分没了。
后面想了一下有一个从数组找到最小值、最大值的方法。
Math.max(...[1,2,3,4])
Math.min(...[1,2,3,4])
其他题目都忘了。
深圳(1年)面试
BOM和DOM是啥
BOM(Browser Object Model,浏览器对象模型) BOM 使 JavaScript 有能力与浏览器进行交互。BOM 提供了一些对象,用于访问浏览器的功能,比如窗口对象(window)、导航对象(location)、历史对象(history)、屏幕对象(screen)等。 例如,通过 window 对象可以控制浏览器窗口的大小、位置,打开新窗口或关闭窗口;通过 location 对象可以获取或设置当前页面的 URL 地址等。 javascript // 使用 BOM 控制窗口大小 window.resizeTo(800, 600); // 使用 BOM 获取当前页面 URL var currentUrl = window.location.href; DOM(Document Object Model,文档对象模型) DOM 把 HTML 或 XML 文档描绘成一个由多层节点构成的结构树。通过 DOM,程序可以对文档的内容和结构进行操作和访问。可以对文档进行添加、修改、删除节点等操作,还可以获取节点的属性、文本内容等信息。 javascript // 获取文档中的第一个 <p> 元素 var firstParagraph = document.getElementsByTagName('p')[0]; // 修改元素的文本内容 firstParagraph.innerHTML = '新的文本内容'; 总的来说,BOM 主要处理浏览器相关的操作,而 DOM 主要处理文档内容和结构的操作。
HTTPS 和 HTTP的区别
-
安全性:
- HTTP 是明文传输,数据在网络中以明文形式发送和接收,容易被窃取和篡改。
- HTTPS 通过 SSL/TLS 协议进行加密,对传输的数据进行加密处理,保证了数据的机密性和完整性,安全性更高。
-
连接方式:
- HTTP 的连接相对简单,直接建立 TCP 连接进行数据传输。
- HTTPS 在建立 TCP 连接后,还需要进行 SSL/TLS 握手,协商加密算法等参数,连接过程更复杂。
-
端口:
- HTTP 通常使用 80 端口。
- HTTPS 通常使用 443 端口。
-
证书:
- HTTPS 需要服务器拥有数字证书,用于验证服务器的身份,确保客户端连接到的是合法的服务器。而 HTTP 不需要证书。
-
性能:
- 由于 HTTPS 增加了加密和解密的过程,会带来一定的性能开销,相对 HTTP 来说,可能会稍微影响传输速度。
例如,对于一个涉及用户敏感信息(如密码、信用卡信息)的网站,使用 HTTPS 可以确保这些信息在传输过程中不被窃取。而对于一些公开的、不涉及敏感信息的网站,如新闻资讯类网站,可能会出于成本和性能考虑,使用 HTTP 。
总的来说,HTTPS 相比 HTTP 提供了更高级别的安全性,但也伴随着一些性能和成本上的考量。在实际应用中,应根据具体需求和场景来选择使用 HTTP 还是 HTTPS 。
UDP 和 TCP 的区别
UDP(用户数据报协议)和 TCP(传输控制协议)主要有以下区别:
- 连接性: - TCP 是面向连接的协议,在数据传输之前需要建立连接。 - UDP 是无连接的协议,不需要在发送数据之前建立连接。
- 可靠性: - TCP 提供可靠的数据传输,通过确认、重传、拥塞控制等机制保证数据的无差错、按顺序到达。 - UDP 不保证数据的可靠交付,可能会出现丢包、乱序等情况。
- 有序性: - TCP 中的数据是按顺序到达的。 - UDP 不保证数据的顺序。
- 首部开销: - TCP 的首部开销较大,通常为 20 字节。 - UDP 的首部开销小,只有 8 字节。
- 应用场景: - TCP 适用于对数据准确性和顺序要求较高的应用,如文件传输、电子邮件、网页浏览等。 - UDP 常用于实时性要求较高、对少量丢包不敏感的应用,如视频直播、音频通话、在线游戏等。 例如,在视频直播中,如果偶尔丢失几个数据包,对观看体验的影响可能不大,但要求实时性高,此时使用 UDP 更合适。而在文件下载时,数据的完整性和顺序非常重要,所以使用 TCP 更为恰当。 总的来说,TCP 更注重数据传输的可靠性和顺序性,而 UDP 更注重传输的效率和实时性。选择使用哪种协议取决于具体的应用需求和场景。
说一下三次握手,四次挥手
为什么要四次挥手
输入浏览器的URL的过程发生了啥
广州(1年)面试
前面聊了很久我的大学生活,还有我的实习经历,聊了大概二十分钟吧。下面是一些面试题。
vue的双向绑定
这个也是老生常谈了吧,本质上虽然是语法糖但是还是和:value+@input(不同表单组件监听的事件不一样,input标签是input事件,其他不同可以自定义事件。)不一样,区别主要在中文语言拼音时候,如果是v-model的话,会等字都打完了再同步数据,如果是第二种写法每打一个字母都会同步数据。
如何隐藏一个元素
如何实现防抖函数
float的原理是什么,高度塌陷如何避免
深圳(1年)面试
八股都背不好我真是没救了。