之前的文章介绍了变量声明和变量的类型等知识点,但仅了解这些还不够,这篇文章将介绍 TypeScript 其他基础的语法知识。熟悉这些后,我们就可以使用 TypeScript 完成简单的开发工作。
基础语法
- TypeScript 区分字符的大小写。
- TypeScript 会忽略程序中出现的空格、制表符和换行符,这些符号用来缩进代码,便于阅读和理解。
- TypeScript 中语句结尾的分号是可选的,但建议使用
;,多行语句写在同一行,则必须写分号来分隔。
保留关键字
TypeScript 中有以下这些保留关键字:
| 关键字 | 备注 | 关键字 | 备注 |
|---|---|---|---|
| any | 表示任意类型 | as | 类型转换 |
| break | 跳出循环 | case | 用于 switch-as 条件语句 |
| catch | 捕获异常 | class | 类 |
| const | 不可变的变量 | continue | 跳过此次循环 |
| do | do-while 循环 | else | if-else 条件语句 |
| enum | 枚举类型 | export | 导出组件等 |
| extends | 继承 | false | 布尔值:否 |
| finally | 捕获异常 | for | for 循环 |
| function | 定义函数 | get | |
| if | if-else 条件语句 | implements | |
| in | 判断元素在数组中 | instanceof | 判断对象类型 |
| interface | 接口 | let | 定义变量 |
| module | 模块 | new | 创建对象 |
| null | 空值 | number | 数字类型 |
| package | private | 私有属性/方法 | |
| public | 公开属性/方法 | return | 函数返回 |
| static | 静态属性/方法 | string | 字符串类型 |
| super | 只想父类对象 | switch | switch-case 条件语句 |
| this | 指向当前对象 | throw | 抛出异常 |
| true | 布尔值:是 | try | 捕获异常 |
| type | 定义类型 | typeof | 查询变量或属性的类型 |
| var | 定义变量 | void | 空类型,函数没有返回值时的类型 |
| while | while 循环 | yield |
注释
TypeScript 支持三种注释:
- 单行注释:
// - 多行注释:
/* */ - 文档注释:
/** */
// 这是一个单行注释
// 这也是一个单行注释
/*
这是一个多行注释
这是一个多行注释
这是一个多行注释
*/
/**
这是一个文档注释
这是一个文档注释
这是一个文档注释
*/
运算符
运算符在程序中用于运算。
TypeScript 支持以下几类运算符:
- 算术运算符
- 逻辑运算符
- 比较运算符
- 赋值运算符
- 位运算符
- 三元运算符
- 字符串运算符
- 类型运算符
算数运算符
| 运算符 | 描述 |
|---|---|
+ | 加法:x + y |
- | 减法:x - y |
* | 乘法:x * y |
/ | 除法:x / y |
% | 取模(取余数):x % y |
++ | 自增 1:x = y++; y 先赋值给 x,再 y 自增 1x = ++y; y 先自增 1,再赋值给 x |
-- | 自减 1:x = y--; y 先赋值给 x,再 y 自减 1x = --y; y 先自减 1,再赋值给 x |
自增1 代码示例:
let y = 5;
let x = y++;
console.log(`x = ${x}, y = ${y}`);
// 输出 x = 5, y = 6
y = 5; x = ++y;
console.log(`x = ${x}, y = ${y}`);
// 输出 x = 6, y = 6
逻辑运算符
逻辑运算符是对两个布尔值进行逻辑运算。
| 运算符 | 描述 |
|---|---|
&& | 逻辑与(and),两个值都为 true 时,结果才为 true:x && y |
⎮⎮ | 逻辑或(or),两个值有一个为 true 时,结果就为 true:x ⎮⎮ y |
! | 逻辑非(not),如果值为 true,结果为 false,如果值为 false,结果为 true:!x |
比较运算符
比较运算符比较两个值的大小,得出的结果是布尔值,true 或者 false。
| 运算符 | 描述 |
|---|---|
== | 比较两值是否相等:x == y |
!= | 比较两值是否不等:x != y |
> | 比较前面的值是否大于后面的值:x > y |
< | 比较前面的值是否小于后面的值:x < y |
>= | 比较前面的值是否大于或等于后面的值:x >= y |
<= | 比较前面的值是否小于或等于后面的值:x <= y |
赋值运算符
赋值运算符用来给变量赋值。
| 运算符 | 描述 |
|---|---|
= | 直接赋值:x = y |
+= | 先进行加运算再赋值:x += y 等价于 x = x + y |
-= | 先进行减运算再赋值:x -= y 等价于 x = x - y |
*= | 先进行乘运算再赋值:x *= y 等价于 x = x * y |
/= | 先进行除运算再赋值:x 、= y 等价于 x = x / y |
位运算符
数字在计算机中是以二进制形式存在,位运算就是对数的二进制形式按位进行运算。
| 运算符 | 描述 |
|---|---|
& | 按位与,同一位上都是 1,结果才是 1 |
⎮ | 按位或,同一位上有一个是 1,结果就是 1 |
~ | 按位取反,某一位上是 1,结果是 0,某一位上是 0,结果是 1 |
^ | 按位异或,同一位上值相同,结果是 0,同一位上值不同,结果是 1 |
<< | 左移,把 << 左边的运算数的各二进位全部左移若干位,由 << 右边的数指定移动的位数,高位丢弃,低位补 0。 |
>> | 右移,把 >> 左边的运算数的各二进位全部右移若干位,>> 右边的数指定移动的位数。 |
>>> | 无符号右移,与有符号右移位类似,除了左边一律使用0 补位。 |
三元运算符
三元运算符有 3 个操作数,用于条件判断。
| 运算符 | 描述 |
|---|---|
条件 ? 表达式1 : 表达式 2 | 如果 条件 为 true,则返回 表达式 1;如果 条件 为 false,则返回 表达式 2。 |
var num = 2;
var result = num > 0 ? "大于 0" : "小于 0,或等于 0";
console.log(result); // 输出:大于 0
字符串运算符
+:字符串连接运算符,将两个字符串拼接在一起形成新的字符串。
let x = "Hello, " + "World";
console.log(x); // 输出:Hello, World
类型运算符
typeof:一元运算符,返回操作数的数据类型。
var num = 12;
console.log(typeof num); //输出结果: number
instanceof:用来判断对象是否是指定的类型。
var num = 12;
console.log(num instanceof number); //输出结果: true
条件语句
条件语句用于根据不同的条件执行不同的程序逻辑。
TypeScript 支持两种形式的条件语句:
if-else if-elseswitch-case
条件语句比较简单,看下代码示例即可:
if...else-if...else 语句
let score: number = 91;
if (score >= 90) {
console.log("优秀");
} else if (score >= 80) {
console.log("良好");
} else if (score >= 60) {
console.log("及格");
} else {
console.log("不及格");
}
// 输出结果:优秀
switch...case 语句
let weather = "晴天";
switch(weather) {
case "晴天":
console.log("sunny");
break;
case "雨天":
console.log("rainy");
break;
default:
console.log("other");
break;
}
循环
循环用来在程序中重复执行某些代码。
TypeScript 中常用的循环写法有下面几种:
- for 循环
- while 循环
- do-while 循环
- for-in 循环
下面依次结合代码示例来简单看下:
for 循环
for 循环是最常用的一种循环写法,语法如下:
for (初始值; 循环判断条件; 值变化) {
循环体
}
例如:
// 计算从 1 加到 10
let x: number = 0;
for (let i = 1; i <= 10; i++) {
x += i;
}
console.log(x); // 输出: 55
while 循环
while (循环判断条件) {
循环体
}
比如:
// 计算从 1 加到 10
let x: number = 0;
let i: number = 1;
while (i <= 10) {
x += i;
i++;
}
console.log(x); // 输出: 55
do-while 循环
do {
} while (循环判断条件)
和 while 循环的循环体可能不执行不同,do-while 的循环体至少执行一次。
例如:
// 计算从 1 加到 10
let x: number = 0;
let i: number = 1;
do {
x += i;
i++;
} while(i <= 10);
console.log(x); // 输出: 55
for-in 循环
for-in 写法一般用来遍历集合和列表,对集合、列表中的元素进行操作:
for (元素 in 集合/列表) {
循环体
}
例如:
let list = ["Apple", "Banana"];
for (let food in list) {
console.log("I want to eat " + food);
}
// 输出
// I want to eat Apple
// I want to eat Banana
参考文档
开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 5 天,点击查看活动详情