Skip to content

Commit 7a5f0ae

Browse files
committed
更新文档
1 parent be267c5 commit 7a5f0ae

File tree

23 files changed

+1507
-1561
lines changed

23 files changed

+1507
-1561
lines changed

src/.vuepress/sidebar.js

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,21 @@ const sidebar = {
1717
],
1818
"/1.base/2.ECMAScript6/": [
1919
"1.index",
20-
"1.scope",
21-
"2.constant",
22-
"3.deconstruction",
20+
"1.let",
21+
"2.const",
22+
"3....",
2323
"4.string",
2424
"5.function",
2525
"6.object",
26+
"6.array",
2627
"7.class",
2728
"8.general",
2829
"9.collect",
2930
"10.module",
3031
"11.promise",
31-
32+
"12.async",
33+
"13.proxy",
34+
"14.module"
3235
],
3336
"/1.base/3.JavaScript/": [
3437
"1.index",

src/1.base/1.ECMAScript/1.index.md

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,22 @@ meta:
1414
通过此处的学习,掌握 ECMAScript 的基础知识
1515
:::
1616

17-
语法 --> 表达式 --> 语句 --> 代码执行
17+
语法 --> 表达式 --> 语句 --> 代码执行
1818

19+
## 1.环境配置
20+
21+
- 安装`node`
22+
23+
## 1.编辑器
24+
25+
- 安装`vscode`
26+
27+
## 3.插件配置
28+
29+
- 安装`run code`
1930

2031
### 流程图示例
21-
32+
2233
@flowstart
2334
st=>start: Start:>http://www.google.com[blank]
2435
e=>end:>http://www.google.com
@@ -36,7 +47,6 @@ para(path1, bottom)->sub1(right)->op1
3647
para(path2, top)->op1
3748
@flowend
3849

39-
4050
@flowstart
4151
process=>operation: Operation
4252
e=>end: End
@@ -120,7 +130,6 @@ para(path1, bottom)->sub1(right)->op1
120130
para(path2, top)->op1
121131
@flowend
122132

123-
124133
@flowstart pia
125134
st=>start: Start:>http://www.google.com[blank]
126135
e=>end:>http://www.google.com

src/1.base/1.ECMAScript/10.var.md

Lines changed: 92 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ meta:
1818

1919
作用域就是一个变量作用的范围。也就是你声明一个变量以后,这个变量可以在哪些范围下使用,var 声明的变量 只有`全局作用域``函数作用域`
2020

21-
`var` 没有块级作用域,定义后在当前的闭包中都可以访问,如果变量名重复,就会覆盖前面定义的变量,并且也有可能被其他人修改
21+
`var` 没有`块级作用域`(封闭作用域),定义后在当前的闭包中都可以访问,如果变量名重复,就会覆盖前面定义的变量,并且也有可能被其他人修改
2222

2323
语句后面的代码块`{}``var`声明的变量的作用域就不是`函数作用域`
2424

@@ -47,6 +47,97 @@ for (var i = 0; i < 3; i++) {
4747

4848
`var`声明变量是在函数最外部,那么此变量作用域就是全局作用域下的变量,全局都能使用这个变量
4949

50+
var 不支持封闭作用域,如果不是在函数里声明的变量会声明到全局作用域(window)上,在代码块中的变量外部也可以访问,而且还是放到全局作用域上面
51+
52+
```js
53+
for (var i = 0; i < 3; i++) {
54+
console.log(i)
55+
}
56+
console.log(i)
57+
console.log(window.i)
58+
// 0
59+
// 1
60+
// 2
61+
// 3
62+
// 3
63+
```
64+
65+
::: tip 解决方式一:使用自执行函数将其声明在函数作用域内
66+
67+
```js
68+
;(function () {
69+
for (var i = 0; i < 3; i++) {
70+
console.log(i)
71+
}
72+
})()
73+
console.log(i)
74+
console.log(window.i)
75+
// 0
76+
// 1
77+
// 2
78+
// Uncaught ReferenceError: i is not defined
79+
// at <anonymous>:6:13
80+
```
81+
82+
:::
83+
84+
::: danger 问题二: 异步的问题
85+
由于代码块中的代码是异步的,会被放到异步队列中执行,当代码把任务队列中的同步代码执行完毕后 i 赋值为 3,然后执行异步队列中的代码,拿到的 i 是 3
86+
:::
87+
88+
```js
89+
for (var i = 0; i < 3; i++) {
90+
setTimeout(function () {
91+
console.log(i)
92+
}, 1000)
93+
}
94+
// 3
95+
// 3
96+
// 3
97+
```
98+
99+
::: tip 解决方式
100+
解决异步的问题
101+
102+
```js
103+
for (var i = 0; i < 3; i++) {
104+
;(function (i) {
105+
setTimeout(function () {
106+
console.log(i)
107+
}, 1000)
108+
})(i)
109+
}
110+
// 0
111+
// 1
112+
// 2
113+
```
114+
115+
:::
116+
117+
### 2.1 全局变量
118+
119+
- 在 if 或者 for 循环中声明的变量会变成全局变量
120+
121+
```js
122+
for (var i = 0; i <= 5; i++) {
123+
console.log("hello")
124+
}
125+
console.log(i) //5
126+
```
127+
128+
### 2.2 变量覆盖
129+
130+
```js
131+
var a = 1
132+
function fn() {
133+
console.log(a)
134+
if (false) {
135+
var a = 2
136+
}
137+
}
138+
fn() //undefined
139+
```
140+
50141
## 3.函数作用域
51142

52143
`var`声明的变量是在函数代码块`{}`中声明的,那么此变量的作用域就是函数作用域下的变量,只能被此函数和函数内部的函数使用

src/1.base/1.ECMAScript/4.type.md

Lines changed: 21 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -33,36 +33,6 @@ meta:
3333

3434
#### 2.2.2 slice
3535

36-
#### 2.2.3 includes
37-
38-
- includes
39-
- startsWith
40-
- endsWith
41-
42-
```js
43-
var url = "http://www.xiaomingxuexi.cn"
44-
console.log(url.includes("xiaomingxuexi"))
45-
console.log(url.startsWith("http://")) //以 xx 开头
46-
console.log(url.endsWith(".png")) // 以 xx 结尾
47-
```
48-
49-
#### 2.2.4 padStart
50-
51-
进制转化
52-
53-
```js
54-
setInterval(function () {
55-
let date = new Date()
56-
let hour = date.getHours()
57-
let minutes = date.getMinutes()
58-
let seconds = date.getSeconds()
59-
let str = `${hour.toString().padStart(2, 0)}`
60-
str += `${minutes.toString().padStart(2, 0)}`
61-
str += `${seconds.toString().padStart(2, 0)}` // padStart padEnd
62-
console.log(str)
63-
}, 1000)
64-
```
65-
6636
## 3.boolean
6737

6838
### 3.1 类型转换
@@ -83,6 +53,16 @@ setInterval(function () {
8353

8454
## 6.object
8555

56+
### 6.1 字面量
57+
58+
```js
59+
let obj = {}
60+
```
61+
62+
```js
63+
let obj = new Object()
64+
```
65+
8666
### 6.1 类型转换
8767

8868
### 6.2 常用方法
@@ -102,6 +82,16 @@ Object.assign(a, { key: 2, o: 3 })
10282

10383
## 7.array
10484

85+
### 7.1 字面量
86+
87+
```js
88+
let arr = []
89+
```
90+
91+
```js
92+
let arr = new Array()
93+
```
94+
10595
### 7.1 类型转换
10696

10797
### 7.2 常用方法
@@ -257,18 +247,7 @@ let newArr = arr.filter((item) => {
257247
console.log(newArr)
258248
```
259249

260-
#### 7.2.5 find
261-
262-
- 1.查找数据,返回查找的那一项 找到后就不会继续查找
263-
264-
```js
265-
let f = [1, 2, 3].find((item) => {
266-
return item === 5
267-
})
268-
console.log(f)
269-
```
270-
271-
#### 7.2.6 some
250+
#### 7.2.5 some
272251

273252
- 1.找到后返回 true
274253

@@ -279,32 +258,6 @@ let s = [1, 2, 3].some((item) => {
279258
console.log(s)
280259
```
281260

282-
#### 7.2.7 includes
283-
284-
```js
285-
;[1, 2, 3].includes(3)
286-
```
287-
288-
#### 7.2.8 from
289-
290-
将类数组转换成数组
291-
292-
```js
293-
function a() {
294-
console.log(eval(Array.from(arguments).join("+")))
295-
}
296-
a(1, 2, 3)
297-
```
298-
299-
常见的类数组 htmlCollection arguments {0:1,1:2,2:3,length:3}
300-
301-
#### 7.2.9 of
302-
303-
```js
304-
let ary = Array.of(3)
305-
console.log(ary)
306-
```
307-
308261
## 8.function
309262

310263
### 8.1 函数参数

0 commit comments

Comments
 (0)