JavaScript基础语法

698 阅读4分钟

本篇文章为大家简单介绍 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 中有一些保留字段是不能作为变量名使用的:

argumentsbreakcasecatchclassconstcontinuedebuggerdefaultdeletedoelse、enum、evalexportextendsfalsefinallyforfunctionif、implements、importininstanceof、interface、letnewnull、package、private、protected、public、returnstaticsuperswitchthisthrowtruetrytypeofvarvoidwhilewithyield

上述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
}