Skip to content

Commit bba362f

Browse files
Merge pull request WTFAcademy#1 from WTFAcademy/main
更新
2 parents 59c9ecd + a14b577 commit bba362f

15 files changed

Lines changed: 416 additions & 132 deletions

File tree

.gitignore

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
**.DS_Store
2+
.DS_Store
3+
node_modules
4+
cache
5+
typechain-types
6+
artifacts
7+
.idea
8+
.history
9+
**node_modules**
10+
**cache**
11+
**artifacts**
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
let hello = "Hello JavaScript!";
2+
console.log(hello);

01_HelloJavaScript/img/.DS_Store

6 KB
Binary file not shown.

01_HelloJavaScript/img/1-1.png

285 KB
Loading

01_HelloJavaScript/img/1-2.png

138 KB
Loading

01_HelloJavaScript/img/1-3.png

147 KB
Loading

01_HelloJavaScript/img/1-4.png

17.2 KB
Loading

01_HelloJavaScript/img/1-5.png

102 KB
Loading

01_HelloJavaScript/readme.md

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
# JavaScript极简入门: 1. Hello JavaScript (2行代码)
2+
3+
WTF JavaScript 教程,帮助新人快速入门 JavaScript。
4+
5+
**推特**[@WTFAcademy_](https://twitter.com/WTFAcademy_)[@0xAA_Science](https://twitter.com/0xAA_Science)
6+
7+
**WTF Academy社群:** [官网 wtf.academy](https://wtf.academy) | [WTF Solidity教程](https://github.com/AmazingAng/WTFSolidity) | [discord](https://discord.wtf.academy) | [微信群申请](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)
8+
9+
所有代码和教程开源在github: [github.com/WTFAcademy/WTF-JavaScript](https://github.com/WTFAcademy/WTF-JavaScript)
10+
11+
-----
12+
13+
2023年,WTF Academy 将开发一个零基础入门的 JavaScript 教程,帮助新人进入 Web3 开发。第一讲,我们将介绍什么是 JavaScript,并编写第一个JavaScript 程序:`Hello JavaScript`(两行代码)。
14+
15+
## 什么是 `Javascript`?
16+
17+
JavaScript 是一种用于与网页元素交互的轻量型编程语言。前端开发者可以将它与 HTML/CSS 结合并增强网页的功能,例如动态更新网页内容,网页交互等。现在,JavaScript 也可以在服务器(后端)通过 Node.js 运行,用于更新数据库、文件系统等。
18+
19+
## 为什么要学习 `JavaScript`?
20+
21+
根据2022年[Stack Overflow社区年度调查显示](https://survey.stackoverflow.co/2022/#most-popular-technologies-language),JavaScript 已经连续十年成为最受开发者欢迎的一门编程语言。学习 JavaScript 不仅是普通 web 开发者的必备技能,同时也是全栈 web3 学习者的必要知识。
22+
23+
![1-1](./img/1-1.png)
24+
25+
## 开发工具
26+
27+
### 1. playcode.io
28+
29+
![](./img/1-2.png)
30+
31+
[playcode](https://playcode.io/)是一个在线编译`javascript`的平台,你不需要在本地安装任何程序就可以运行`.js`文件,非常方便。本教程将使用 playcode 进行代码演示,未来也将在 [wtf.academy](https://wtf.academy) 的教程中嵌入可互动代码模块。你可以在[链接](https://playcode.io/1051873)上找到这一讲的代码。
32+
33+
![](./img/1-3.png)
34+
35+
### 2. VS Code
36+
37+
你可以使用本地 [VS Code](https://code.visualstudio.com/download) 进行开发,需要安装[Node.js](https://nodejs.org/zh-cn/download/),我们会在之后的章节介绍如何使用它。
38+
39+
## Hello JavaScript!
40+
41+
下面,我们要写第一个 JavaScript 程序:`Hello JavaScript`。在这个程序中,我们定义了一个变量,并将它的值输出到控制台。
42+
43+
代码:
44+
45+
```js
46+
let hello = "Hello JavaScript!";
47+
console.log(hello);
48+
```
49+
50+
输出:
51+
![1-2](./img/1-4.png)
52+
53+
下面,我们逐行学习一下。
54+
55+
1. 第 1 行,我们利用 `let` 关键字定义了一个名为 `hello` 的变量,并将`"Hello JavaScript!"` 赋值给它,最后以分号 `;` 结束这一行语句。
56+
57+
```js
58+
let hello = "Hello JavaScript!";
59+
```
60+
61+
2. 第 2 行,我们利用内置函数 `console.log``hello` 变量的值输出到控制台,让人们可以看到。
62+
63+
```js
64+
console.log(hello);
65+
```
66+
67+
## 【拓展知识】Javascript 程序是如何运行的?
68+
69+
![](./img/1-5.png)
70+
71+
> 你不理解下面这段话也没关系,不妨碍你继续学习 JavaScript,因为我也不是很理解!
72+
73+
如果说`编程语言`是人类与机器沟通的语言,那么`程序`是一篇篇文章,`代码`是其中的文本。Javascript 程序运行的大致步骤如下:
74+
75+
1. 程序员完成一段代码。
76+
```js
77+
let hello = "Hello JavaScript!";
78+
```
79+
2. 将代码提交给`编译器`(compiler)编译。首先,`编译器`会将`代码`分解为单个的`令牌`(token)。上面的语句会被分解为 `5` 个令牌: `let`, `hello`, `=`, `"Hello JavaScript!"`, 和 ``
80+
81+
3. 接下来,`令牌`会被重新组织成一个树状结构,也叫`抽象语法树`(Abstract Syntax Tree, AST)。你可以在[AstExplorer](https://astexplorer.net/)上输入代码,并查看生成的`抽象语法树`
82+
83+
4. 最后,编译器会将结构化的`抽象语法树`转换并生成计算机能运行的的`机器码`
84+
85+
如果你的`代码`没有按照`编程语言`的语法来写,编译器就无法把它解析为机器能懂的`机器码`,那么`程序`就无法运行。这时,你就要去找出程序的`bug`并修复它。在未来的教程中,我们将介绍更多的 `JavaScript` 语法。
86+
87+
## 习题
88+
89+
`Hello Javascript` 程序中变量 `hello` 的值改为 `“Hello WTF Academy!”`,并观察控制台的输出。
90+
91+
## 总结
92+
93+
第一讲,我们介绍了什么是 JavaScript,为什么要学习它,JavaScript 开发工具,并编写了第一个仅有两行的 JavaScript 程序:`Hello JavaScript`。接下来,我们将继续 JavaScript 之旅!

02_Declaration/Declaration.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
// let
2+
// 1. 先声明 year 变量,再给它赋值 2023
3+
let year;
4+
year = 2023;
5+
// 2. 声明 name 变量的同时给它赋值 "0xAA"
6+
let name = "0xAA";
7+
// 3. 声明 newName 变量,同时将变量 name 的值 “0xAA” 赋给它
8+
let newName = name;
9+
10+
// const
11+
// 声明 age 常量,并赋值 18
12+
const age = 18;
13+
// 尝试改变常量的值时会报错 TypeError: Assignment to constant variable
14+
age = 20;
15+
16+
// var (不推荐)
17+
// 声明 variable 变量并赋值 "hello"
18+
var variable = "hello"
19+
20+
// 习题
21+
const fruit = 'apple'
22+
fruit = 'orange'
23+
console.log(fruit)

0 commit comments

Comments
 (0)