如何学习一门计算机语言
如何学习一门计算机语言
提示
学习一门语言的基本顺序是:
- 了解数据结构
- 了解变量声明与赋值
- 了解判断和循环体结构
- 了解函数声明
- 了解输入输出
本部分将以 JS 作为示例,展示什么是一门计算机语言,应该如何学习它们。
基础
首先,任何语言都是由一些基本结构组成的,下面介绍几乎所有语言共有的一些概念:
语句
语句可以简单理解为一个操作,它可以是赋值,也可以是执行,还可以是介于或者是可以归类到两者上的判断、声明、标记等。
请注意一条语句通常是一个计算机语言描述的最小操作。
比如:
let a = 1; // 赋值
alert("Hello word"); // 调用函数 执行操作
if (a > 2) {
// 判断
}
代码块
通常情况下,在有了语句概念后,我们就要使用不同的语句顺序,完成不同的操作,但是某些操作总是固定的。
比如回家,总是 “掏出钥匙”-“插入钥匙”-“转动钥匙”-“开启房门”-“拔出钥匙”-“进入”-“关闭房门” 。
这些步骤每一步都可以理解为一个语句,但是由于其顺序基本是固定的,我们就可以设计一个代码块,来约束它们。
{
“掏出钥匙”;
“插入钥匙”;
“转动钥匙”;
“开启房门”;
“拔出钥匙”;
“进入”;
“关闭房门”;
}
大多数语言会使用 { }
的形式,少数语言会使用统一的缩进进行表达。
数据结构
计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。
任何语言都是操作、计算(处理)、生成数据的。数据结构是一门语言存放数据的方式。不同的数据,需要定义不同的数据类型。了解了数据结构就了解了一门语言可以存储或处理何种数据。
大多数语言都包含了以下的一种或多种内容:
数字:
不同语言对数字有不同的处理方式,少数语言可能只有数字这一种类型,一些语言可能会拆分成整数与浮点数。一些底层语言(涉及到内存)可能会魔鬼的将数字拆分为: 整型、浮点数、无符号整型、长整型、无符号长整形、长浮点数。(说的就是您,C 语言)
字符串:
一些语言只有字符串这个概念,一些语言分为字符和字符串这个概念。
布尔值:
几乎所有语言都有布尔值,布尔值只有真和假两种类型。大多数会表示为
true
和false
,少数会表示为True
和False
。数组:
大部分语言都有数组 (Array) 这个概念,它是一个有序的元素集合。很多底层语言就是靠数组实现的字符串 (因为字符串长度不固定)。在数组中,每个元素具有标号,从 0 开始依次递增。
一些语言还有 Set 这个概念,Set 表示的是无序元素集合,所有元素没有先后与标号的概念,自然 Set 也无法存入相同的元素。
对象:
大部分语言的对象 (Object) 都是由键值对组成的,它是一个由键标记的元素集合,可以使用特定的键名写入或读取其对应的值。
一些产生较晚的语言,将对象改为 Map,Map 表达一个映射,将对应的键映射到对应的值上。
类:
类 (Class) 是一个内容集合,它包含了自己的构造器、变量与方法。类在声明后,可以很轻松的使用构造器创建一个新的实例。每个实例可以用其内部的变量维护或表达一个状态,并可以使用它自身的方法来读取或是改变自己的状态。不同的类之间还可以进行继承。
变量
一个变量是数据的“命名存储”。我们可以使用变量来保存商品、访客和其他信息。
下面的语句创建(换句话说,声明或者定义)了一个名称为“message”的变量:
let message;
在有了变量之后,我们就可以将刚了解的数据结构赋值给变量,以变量来代替这些数据。
let user = "John";
let age = 25;
let message = "Hello";
条件
条件运算符用于判断,通过判断一个条件的真假,来执行不同的逻辑。这是每一门语言逻辑结构的基础。
let year = 2015;
if (year < 2015) {
alert("Too early...");
} else if (year > 2015) {
alert("Too late");
} else {
alert("Exactly!");
}
循环
循环运算符的作用,是在条件控制下,零次或多次执行特定代码块。它使得重复执行成为了可能。
let result = 0;
let i = 1;
while (i <= 100) {
// 计算1+2+3+...+100的结果
i = i + 1;
result = result + i;
}
for (let i = 0; i < 3; i++) {
// 结果为 0、1、2
alert(i);
}
函数
函数是程序的主要“构建模块”,
创建函数时,需要声明函数内容,函数内容由一系列语句(代码块) 构成。在声明函数后,使用函数即可多次调用一段代码。
例如:
function showMessage() {
alert("Hello everyone!");
} // 声明一个函数
showMessage(); // 调用它
showMessage(); // 可以在任意时刻调用它
同时函数可以通过接受参数的形式来根据情况返回不同的结果,比如这是一个简单的求和函数。
function sum(sum1, sum2) {
return sum1 + sum2;
}
sum(1, 2); // return 3
sum(5, 6); // return 11