面试总结:
非计算机专业,没有项目经验,重点考察理论/逻辑基础:大体了解,但细节和关键点知识有所欠缺(3分一下是没回答好的)
3- 前端:了解一些基础知识,但是实践缺乏
3- 性格:主动性好,善于表现自己
3 逻辑思维/代码:一般,遇到困难的地方容易表现混乱
3- 整体评价:主动好学,有一定自学成果,但缺乏实践机会,逻辑和代码表现一般,建议二面考察下可培养价值
3 1. 基础 - 连接过程,握手 –
3 - 报文格式,常见 Header – 不太清楚
http常见的报文格式:
// 请求报文是由请求方法,请求URI,协议版本,可选的请求首部字、段,和内容实体组成。
// 请求报文的构成:
// POST /form/entry HTTP/1.1=>协议版本
// 请求首部字段:Host: hackr.jp
// connection: keep-·alive
// content-type: application/x-www-form-urlencoded
// content-Length
// 内容实体: name=ueno&age=37
// 响应报文的组成:
// 协议版本 状态码 状态码的原因短语
// HTTP/1.1 200 OK
// 响应首部字段
// Date: Tue,****** GMT
// Content-Length: 362;
// Content-Type: text/html
// 响应主体:
// <html>
告知服务器意图的HTTP方法:
GET方法:获取资源
POST:传输实体主体;
PUT:传输文件
HEAD:获得报文首部
DELETE: 删除文件
OPTIONS: 询问支持的方法。
TRACE: 追踪路径。
2.5 - 缓存原理 –
3 2. JS - 封装队列,栈操作 – 思路有点混乱,经几次提醒才答出 2.5 - 重排和重绘,优化 – 基本理解
3 - eventloop,微任务/宏任务 – 基本了解 3 3. Vue - 双向绑定原理 – 基本了解,了解过 vue3 3+
4. CSS - 计量单位,物理像素
// CSS计量单位
/*
我们可以这样来设置1em,0.5em,1.5em等,而且“em”还可以指定到小数点后三位,比如“1.365em”。而其中“相对”的意思是:
1.相对的计算必然会一个参考物,那么这里相对所指的是相对于元素父元素的font-size。比如说:如果在一个<div>设置字体大小为“16px”,此时这个<div>的后代元素教程了是将继承他的字体大小,除非重新在其后代元素中进行过显示的设置。此时,如果你将其子元素的字体大小设置为“0.75em”,那么其字体大小计算出来后就相当于“0.75 X 16px = 12px”;*/
// 参看下面的链接:
https://blog.csdn.net/javaloveiphone/article/details/51120476?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.control
- – 了解较少 2.5
-
- 代码 - 两个数据查找相同元素 – 实现很快,能优化
- 3 - 两个字符串查找最长重复子串 – 未能实现 2.5
public static int getLCS(String s1, String s2) {
char[] ch1 = s1.toCharArray();
char[] ch2 = s2.toCharArray();
int[][] dp = new int[ch1.length+1][ch2.length+1];
//int max = 0;
//int right = 0;
for(int i = 1; i <=ch1.length; i++){
for(int j = 1; j<= ch2.length; j++){
if(ch1[i-1] == ch2[j-1]){
dp[i][j] = dp[i-1][j-1] + 1;
} else {
dp[i][j] = Math.max(dp[i-1][j], dp[i][j-1]);
}
}
}
return dp[ch1.length][ch2.length];
}
// for(int i = 1; i<= ch1.length; i++){
// for(int j = 1; j<= ch2.length; j++){
// if(ch1[i-1] == ch2[j-1]){
// dp[i][j] = dp[i-1][j-1] + 1;
// if(dp[i][j] > max) {
// max = dp[i][j];
// right = i;
// }
// } else {
// dp[i][j] = 0;
// }
// }
// }
//
// System.out.println(max);
// System.out.println(right);
//
// System.out.println(s1.substring(0,0));
//
// return s1.substring(right-max,right);
// }
css像素补充:
1、px:相对长度单位。像素px是相对于显示器屏幕分辨率而言的。
2、em:相对长度单位。相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸。
看下面例子:
HTML:
CSS:
div{
font-size:1.5em;
}
计算关系是这样的:
body的font-size是继承自跟元素html,html的尺寸是浏览器默认尺寸14px;
div1的font-size=1.514px = 21px;
div2的font-size=1.521px = 31.5px;
div3的font-size=1.531.5px = 47.25px;
如果手动设置div2的font-size为40px,div3的font-size应该为1.540px = 60px。
3、rem:相对长度单位。r’是“root”的缩写,相对于根元素的字体大小。
例如还是上面的html代码,添加如下样式:
.div3{
font-size:1.5rem;
}
这里写图片描述
此时div3的font-size = 1.514px = 1.5html的font-size
4、vh and vw:相对于视口的高度和宽度,而不是父元素的(CSS百分比是相对于包含它的最近的父元素的高度和宽度)。
1vh 等于1/100的视口高度,1vw 等于1/100的视口宽度。
比如:浏览器高度900px,宽度为750px, 1 vh = 900px/100 = 9 px,1vw = 750px/100 = 7.5 px。
很容易实现与同屏幕等高的框:.slide { height: 100vh;}
设置一个和屏幕同宽的标题,h1{font-size:100vw},那标题的字体大小就会自动根据浏览器的宽度进行缩放,以达到字体和viewport大小同步的效果。
5、vmin and vmax:关于视口高度和宽度两者的最小值或者最大值。
比如,浏览器的宽度设置为1200px,高度设置为800px, 1vmax = 1200/100px = 12px, 1vmin = 800/100px = 8px。如果宽度设置为600px,高度设置为1080px, 1vmin就等于6px, 1vmax则未10.8px。
有一个元素,你需要让它始终在屏幕上可见:
.box {
height: 100vmin;
width: 100vmin;
}
如果你要让这个元素始终铺满整个视口的可见区域:
.box {
height: 100vmax;
width: 100vmax;
}
参考:http://j.news.163.com/docs/99/2014111814/ABBB78BG00964KGG.html