本篇文章为大家简单介绍 JS 中的基础语法,让大家对 JS 有初步的认识
1.语句
JavaScript 程序的执行单位为行(line),也就是一行一行地执行。一般情况下,每一行就是一个语句。比如下面就是一行赋值语句。
var a = 1 + 3;
这条语句先用var命令,声明了变量a,然后将1 + 3的运算结果赋值给变量a。
1 + 3叫做表达式,主要进行某种操作而一定会返回一个值。而语句主要为了进行某种操作,一般情况下不需要返回值。语句以分号结尾,一个分号就表示一个语句结束。多个语句可以写在一行内。
var a = 13 ; var b = 'abc';
分号前面可以没有任何内容,JS 会将其视为空语句。
2.变量
变量声明和赋值
变量就是为“值”起名,引用这个名字,就等同于引用这个值。相当于外卖柜的号码,可以根据指定的号码(变量)取到自己的外卖(值)。其中 a 就是 1 的变量,该过程就是将数值 1 赋值给 a。在 JS 中变量名是区分大小写的。
var a = 1;
当然变量的名字也是有要求和规范的。因为最常见的标识符就是变量名,所以可以简单的将二者看做是等同的。在 JS 中遵循以下标识符的命名规范:
第一个字符,可以是任意 Unicode 字母(包括英文字母和其他语言的字母),以及美元符号($)和下划线(_)。
第二个字符及后面的字符,除了 Unicode 字母、美元符号和下划线,还可以用数字0-9。
以下举例合法与不合法的标识符:
合法标识符:
myFunction
_temp
$trigger
不合法标识符:
1a // 第一个字符不能是数字
** // 标识符不能包含星号
a-b // 标识符不能包含运算符
-d // 标识符不能包含减号或连词线
在 JS 中有一些保留字段是不能作为变量名使用的:
arguments、break、case、catch、class、const、continue、debugger、
default、delete、do、else、enum、eval、export、extends、false、finally、
for、function、if、implements、import、in、instanceof、interface、let、
new、null、package、private、protected、public、return、static、super、
switch、this、throw、true、try、typeof、var、void、while、with、yield。
上述var a = 1是变量声明和赋值的结合形式,实际的步骤是这样的:
var a //首先申明一个变量a,就像先建一个外卖柜
a = 1 //再对a这个变量进行赋值,即把外卖放到外卖柜中
倘若只声明了变量但是没有给变量赋值,那么变量的值就是 undefined,其表示未定义。
var a
a //undefined
在 JS 中,变量没有声明就直接使用是会报错的,会告诉你变量未定义
a // ReferenceError: a is not defined
在声明赋值之后,就可以对该变量进行任意类型的赋值了(关于类型之后的文章会讲到),因为 JS 是门动态类型的语言,不像 TS 语言那样具有强约束性。
变量提升
在 JS 中变量提升是一个重要的概念,对于初学者来说要熟练的掌握。造成变量提升的原因是因为 JS 的工作机制,其会在解析代码后,获取所有声明的变量,再去一行行执行相应的代码。显而易见得这会将声明的变量放在首位。我们可以通过console.log命令打印在声明赋值过程中a的值,就可以清晰的感受到变量提升了。
var a
console.log(a) //此时会打印undefined,因为a = 1 还没有被执行,即a还没有被赋值为1
a = 1
3.代码注释
注释在任意语言中都有运用,其作用是告诉引擎将注释的部分忽略掉不去执行。在 JS 中有两种注释代码的方法,一种是单行注释,用//开头;另一种是多行注释,放在/*和*/之间。
// 这是单行注释
/*
这是
多行
注释
*/
4.区块
在 JS 中,被一对花括号{}所包含的代码,称为区块,由此衍生了作用域的概念(之后的文章会有介绍)。区块常见于复杂的语法结构,比如函数及各类的循环语句中。他将多个语句组织成一个单独的代码执行单元。
function fn(){
let greeting = "Hello World!";
console.log(greeting);
}
for(let i = 0; i < 10 ; i++){
console.log(i); // 输出0到9
}