AI发展看样子可以替代IT?当然不是,还早,关注AI没错,但不要忘了基础,基础是根本,AI是工具,工具再强大,也离不开人的操作。最近看到一个关于JS数组的问题,分享一下。

1
2
3
4
5
6
7
8
9
10
11
12
const list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const list2 = [,undefined, null, '', 0, false, NaN, 1,];

for (let item of list) {
console.log(item);
list2.map(item => console.log(item));
}

console.log('list2.length', list2.length);

// 1、输出啥
// 2、list2长度是多少

输出

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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
1
undefined
null

0
false
NaN
1
2
undefined
null

0
false
NaN
1
3
undefined
null

0
false
NaN
1
4
undefined
null

0
false
NaN
1
5
undefined
null

0
false
NaN
1
6
undefined
null

0
false
NaN
1
7
undefined
null

0
false
NaN
1
8
undefined
null

0
false
NaN
1
9
undefined
null

0
false
NaN
1
10
undefined
null

0
false
NaN
1

8

考察点

阅读全文 »

Webpack 5 已经发布很久了,好奇 Webpack 6还会有吗,还是说Webpack之后就退出历史舞台?最近翻了下Repo,得到了答案。

查询资料发现v5发布于2020年。

有Webpack 6吗?

YES,Webpack还远没到退出历史的阶段。Webpack仍然是使用最广泛的构建工具之一,并且仍然在积极开发中。

阅读全文 »

表单作为用户交互最为常见的形式,值的校验/维护是个问题。

react技术栈下中React Hook Form 包名: react-hook-form是个不错的方案,它的功能很强大,恰当灵活的使用它,可以提升code可维护性和研发效率。

这里就把hook form的常用场景/使用/容易忽略的点做一个总结。

一些方法

实际使用中,我们常用的只是useForm/Controller/getValues

抛开常用的useForm/useWatch/Controller,hook-form还有其他一些方法,这里就介绍下。

阅读全文 »

最近做GitLink时需要用到代码高亮,所以研究了下highlight.js,发现了使用中的一些问题,记录一下。

导入highlight.js

如果是WEB网页想CDN导入,或者直接src导入,并不应该直接使用highlight.js的资源,而是应该使用highlightjs/cdn-release

如果是牵扯构建工具,则应该使用highlight.js的npm包。

阅读全文 »

之前使用ssh2-sftp-client来实现了终端文件上下载,同时因为支持流方式,所以做到了分片上传和下载,同时也就有了进度条。但传输时候网路是有不确定性的随时中断,那么就需要断点续传。这里了解了下ssh2-sftp-client的实现,发现实际上支持断点是具备可行性的。

put/get方法

put/get方法的第三个参数是options。其中有writeStreamOptions/readStreamOptions。这两个对象仔细查看定义,会发现其中有一个start参数,这个参数表示从哪个位置开始传输。

有了这个参数,就可以实现断点续传了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
export interface ReadStreamOptions extends ReadableOptions {
flags?: OpenMode;
mode?: number;
start?: number;
end?: number;
autoClose?: boolean;
handle?: Buffer;
}

export interface WriteStreamOptions extends WritableOptions {
flags?: OpenMode;
mode?: number;
start?: number;
autoClose?: boolean;
handle?: Buffer;
encoding?: BufferEncoding;
}
阅读全文 »
0%