0%

入职了新公司

2022 年底到20220301

2023年 1月入职一家
2023年 3月入职一家速度还不慢。。

test

在面试中被两次问过 await/async,让回答一下这两个关键字。之前确实没有是实操使用过这两个关键字,知道是来来完成异步操作的,倒是用过 .GetAwaiter().GetResult().所以面试中很没底气,没有完整的回答这个问题。所以打算整理一下这个知识点。

走进异步编程的世界 - 开始接触 async/await
走进异步编程的世界 - 剖析异步方法(上)
走进异步编程的世界 - 剖析异步方法(下)
走进异步编程的世界 - 在 GUI 中执行异步操作

这四篇有个详细的介绍,但是感觉并不是很理解。还是要找点文章自己也实际编码一下,好好总结。

[css] 圣杯布局和双飞翼布局的理解和区别,并用代码实现

   作用:圣杯布局和双飞翼布局解决的问题是一样的,就是两边顶宽,中间自适应的三栏布局,中间栏要在放在文档流前面以优先渲染。
  区别:圣杯布局,为了中间div内容不被遮挡,将中间div设置了左右padding-left和padding-right后,将左右两个div用相对布局position: relative并分别配合right和left属性,以便左右两栏div移动后不遮挡中间div。双飞翼布局,为了中间div内容不被遮挡,直接在中间div内部创建子div用于放置内容,在该子div里用margin-left和margin-right为左右两栏div留出位置。

圣杯布局代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<body>
<div id="hd">header</div>
<div id="bd">
<div id="middle">middle</div>
<div id="left">left</div>
<div id="right">right</div>
</div>
<div id="footer">footer</div>
</body>

<style>
#hd{
height:50px;
background: #666;
text-align: center;
}
#bd{
/*左右栏通过添加负的margin放到正确的位置了,此段代码是为了摆正中间栏的位置*/
padding:0 200px 0 180px;
height:100px;
}
#middle{
float:left;
width:100%;/*左栏上去到第一行*/
height:100px;
background:blue;
}
#left{
float:left;
width:180px;
height:100px;
margin-left:-100%;
background:#0c9;
/*中间栏的位置摆正之后,左栏的位置也相应右移,通过相对定位的left恢复到正确位置*/
position:relative;
left:-180px;
}
#right{
float:left;
width:200px;
height:100px;
margin-left:-200px;
background:#0c9;
/*中间栏的位置摆正之后,右栏的位置也相应左移,通过相对定位的right恢复到正确位置*/
position:relative;
right:-200px;
}
#footer{
height:50px;
background: #666;
text-align: center;
}
</style>

双飞翼布局代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<body>
<div id="hd">header</div>
<div id="middle">
<div id="inside">middle</div>
</div>
<div id="left">left</div>
<div id="right">right</div>
<div id="footer">footer</div>
</body>

<style>
#hd{
height:50px;
background: #666;
text-align: center;
}
#middle{
float:left;
width:100%;/*左栏上去到第一行*/
height:100px;
background:blue;
}
#left{
float:left;
width:180px;
height:100px;
margin-left:-100%;
background:#0c9;
}
#right{
float:left;
width:200px;
height:100px;
margin-left:-200px;
background:#0c9;
}

/*给内部div添加margin,把内容放到中间栏,其实整个背景还是100%*/
#inside{
margin:0 200px 0 180px;
height:100px;
}
#footer{
clear:both; /*记得清楚浮动*/
height:50px;
background: #666;
text-align: center;
}
</style>

[html] 页面导入样式时,使用link和@import有什么区别?

Answer1

区别:
1.link是HTML标签,@import是css提供的。
2.link引入的样式页面加载时同时加载,@import引入的样式需等页面加载完成后再加载。
3.link没有兼容性问题,@import不兼容ie5以下。
4.link可以通过js操作DOM动态引入样式表改变样式,而@import不可以。

Answer2

1)从属关系的区别:link属于XHTML标签,而@import是CSS提供的语法规则,link除了加载CSS,还可以定义RSS,定义rel连接属性等,@import就只能加载CSS。
2)加载顺序的区别:页面加载时,link会同时被加载,而@import引用的CSS会等页面被加载完后再加载。
3)兼容性的区别:@import只有IE5以上才能被识别,而link是XHTML标签,无兼容问题。
4)DOM可控性区别:通过js操作DOM,可以插入link标签来改变样式;由于DOM方法是基于文档的,无法使用@import方式插入样式
5)权重区别(争议):可参考:https://www.cnblogs.com/my--sunshine/p/6872224.html

Answer3

发现之前也思考过这个问题,今天复习了一下。
原文链接:https://xiangshuo.blog.csdn.net/article/details/52885924

先回答区别,再扩展一下。

区别1:link是XHTML标签,除了加载CSS外,还可以定义RSS等其他事务;@import属于CSS范畴,只能加载CSS。
区别2:link引用CSS时,在页面载入时同时加载;@import需要页面网页完全载入以后加载。
所以会出现一开始没有css样式,闪烁一下出现样式后的页面(网速慢的情况下)
区别3:link是XHTML标签,无兼容问题;@import是在CSS2.1提出的,低版本的浏览器不支持。
区别4:link支持使用Javascript控制DOM去改变样式;而@import不支持。
在html设计制作中,css有四种引入方式。

方式一: 内联样式

内联样式,也叫行内样式,指的是直接在 HTML 标签中的 style 属性中添加 CSS。
示例:

1
<div style="display: none;background:red"></div>

这通常是个很糟糕的书写方式,它只能改变当前标签的样式,如果想要多个

拥有相同的样式,你不得不重复地为每个
添加相同的样式,如果想要修改一种样式,又不得不修改所有的 style 中的代码。很显然,内联方式引入 CSS 代码会导致 HTML 代码变得冗长,且使得网页难以维护。

方式二: 嵌入样式

嵌入方式指的是在 HTML 头部中的 <style> 标签下书写 CSS 代码。
示例:

1
2
3
4
5
6
7
8
9
<head>
<style>

.content {
background: red;
}

</style>
</head>

嵌入方式的 CSS 只对当前的网页有效。因为 CSS 代码是在 HTML 文件中,所以会使得代码比较集中,当我们写模板网页时这通常比较有利。因为查看模板代码的人可以一目了然地查看 HTML 结构和 CSS 样式。因为嵌入的 CSS 只对当前页面有效,所以当多个页面需要引入相同的 CSS 代码时,这样写会导致代码冗余,也不利于维护。

方式三:链接样式

链接方式指的是使用 HTML 头部的 标签引入外部的 CSS 文件。
示例:

1
2
3
<head>
<link rel="stylesheet" type="text/css" href="style.css">
</head>

这是最常见的也是最推荐的引入 CSS 的方式。使用这种方式,所有的 CSS 代码只存在于单独的 CSS 文件中,所以具有良好的可维护性。并且所有的 CSS 代码只存在于 CSS 文件中,CSS 文件会在第一次加载时引入,以后切换页面时只需加载 HTML 文件即可。

方式四:导入样式

导入方式指的是使用 CSS 规则引入外部 CSS 文件。
示例:

1
2
3
<style>
@import url(style.css);
</style>

或者写在css样式中

1
2
3
4
@charset "utf-8";
@import url(style.css);
*{ margin:0; padding:0;}
.notice-link a{ color:#999;}

[js] 用递归算法实现,数组长度为5且元素的随机数在2-32间不重复的值

1
2
3
4
5
6
7
function buildArray(arr, length, min, max) {
var num = Math.floor(Math.random() * (max - min + 1)) + min;
if (!arr.includes(num)) { arr.push(num); }
return arr.length === length ? arr : buildArray(arr, length, min, max);
}
var result = buildArray([], 5, 2, 32);
console.table(result);

[软技能] 第370天 要你写一个手机端的图形解锁的工具,你的思路是什么?

[js] 第370天 对a == ('1'||'2'||'3') ? false : true写法进行改进,写出你优化后的方法

[css] 第370天 写出在不固定宽高的元素在固定高度的情况下水平垂直居中的方法

[html] 第370天 说说你对这几个概念的理解:层叠上下文、层叠等级、层叠顺序