# 语言基础
# 1. 语法
# 1.1 区分大小写
ECMAScript中一切都区分大小写。无论是变量、函数名还是操作符,都区分大小写。
换句话说,变量test和变量Test是两个不同的变量。
类似地,typeof不能作为函数名,因为它是一个关键字。但Typeof是一个完全有效的函数名。
# 1.2 标识符
变量、属性、函数或函数参数的名称。
标识符可以由一个或多个下列字符组成:
- 第一个字符必须是一个字母、下划线(_)或美元符号($);
- 剩下的其他字符可以是字母、下划线、美元符号或数字。
标识符中的字母可以是扩展ASCII(Extended ASCII)中的字母,也可以是Unicode的字母字符,如À和Æ(但不推荐使用)。
按照惯例,一般使用驼峰命名。
# 1.3 注释
ECMAScript采用C语言风格的注释,包括单行注释和块注释。
// 单行注释
/*
这里多行
块注释
这里多行
*/
1
2
3
4
5
6
7
2
3
4
5
6
7
# 1.4 严格模式
要对整个脚本启用严格模式,在脚本开头加上这一行:
"use strict";
1
单独指定一个函数在严格模式下执行:
function doSomething() {
"use strict";
// 函数体
}
1
2
3
4
2
3
4
# 1.5 语句
ECMAScript中的语句以分号结尾。省略分号意味着由解析器确定语句在哪里结尾。
记着加分号有助于防止省略造成的问题,比如可以避免输入内容不完整。
加分号也有助于在某些情况下提升性能,因为解析器会尝试在合适的位置补上分号以纠正语法错误。
# 1.5.1 单语句
let diff = a - b // 没加分号,有效,不推荐
let sum = a + b; // 加分号,有效,推荐
1
2
3
2
3
# 1.5.2 多语句
多条语句可以合并到一个C语言风格的代码块中。
if (test) {
test = false;
console.log(test);
}
1
2
3
4
2
3
4
if之类的控制语句只在执行多条语句时要求必须有代码块。
最佳实践是始终在控制语句中使用代码块,即使要执行的只有一条语句。
// 有效,但容易导致错误,应该避免
if (test)
console.log(test);
// 推荐
if (test) {
console.log(test);
}
1
2
3
4
5
6
7
2
3
4
5
6
7
# 2. 变量
# 2.1 var
要定义变量,可以使用var操作符,后面跟变量名。
var message;
// 这行代码定义了一个名为message的变量,可以用它保存任何类型的值。
1
2
3
2
3
不初始化的情况下,变量会保存一个特殊值undefined。
var message = "hi";
// 这里message被定义为一个保存字符串值hi的变量。
// 像这样初始化变量不会将它标识为字符串类型,只是一个简单的赋值而已。
// 随后,不仅可以改变保存的值,也可以改变值的类型:
message = 100; // 合法,不推荐
1
2
3
4
5
6
7
2
3
4
5
6
7