阅读 39

JS 的基本语法

1. 语句和表达式

JavaScript 程序的执行单位为行,也就是一行一行的执行。一般情况下,一行就是一个语句。

语句是为了完成某种任务而进行的操作。表达式是一个为了得到返回值的计算式。
语句以分号结尾,多个语句可以写在一行内。

语句和表达式的区别是,语句主要为了进行某种操作(一般会改变环境),一般不需要返回值;表达式是为了得到返回值。

需要注意的是

  • 分号前面可以没有任何内容
;;;
复制代码

上面代码就是三个语句

  • 在 JavaScript 程序中,绝大多数情况下空格和回车是没有意义的,比如以下三句代码没有任何区别
var a = 1;
var a=1;
var a =          1;
复制代码

有个例外是,return 后面是不能有回车的,否则函数会返回 undefined。

2. 标识符

标识符是用来识别各种值的合法名称。常见的标识符是变量名和函数名。标识符对大小写敏感,aA 是两个不同的标识符。

标识符的规则如下

  • 第一个字符可以是任意 Unicode 字母,$ 和下划线(_)。
  • 第二个及后面的字符,可以是任意 Unicode 字母,$,下划线(_)和数字 0-9

JavaScript 还有一些保留字,不能用作标识符: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。

3. if...else 结构

if...else 结构基本形式如下

if(判断语句){
  表达式1       //判断语句 true 时,执行该部分内容
}else{
  表达式2       //判断语句为 false 时,执行该部分内容
}
复制代码

可以使用三元运算符简写为

(判断语句)?表达式1:表达式2复制代码

对同一变量进行多次判断时,可以写成

if(条件1){
  //...
}else if(条件2){
  //...
}else if(条件3){
  //...
}else{
  //...
}
复制代码

注意

  1. 大括号不是必须的,但是建议总是加上大括号。。
    如果不加大括号,只会执行后面的第一个语句;若要执行多个语句,必须加大括号。
    建议总是加上大括号。
  2. 判断语句优先采用“严格相等运算符”(===).

4. 循环语句

4.1 while 循环

基本结构如下

while(条件){
  语句;
}
复制代码

每次执行前,进行条件判断,只要为真,就一直执行。

4.2 for 循环

for 循环可以指定循环的起点、终点和终止条件。格式如下

for(初始化表达式; 条件; 递增表达式){
  语句
}
复制代码
  1. 初始化表达式确定循环变量的初始值,只在循环开始时执行一次。
  2. 每次循环开始时执行条件表达式,只有值为真,才继续进行循环。
  3. 递增表达式是每轮循环的最后一个操作,用来递增循环变量。

例如

for(let i = 0; i < 4; i++){
  console.log(i)
}

//0
//1
//2
//3
复制代码

4.3 break 语句和 continue 语句

break 语句和 continue 语句都有跳转的作用,可以让代码不按既有的顺序执行。

break 语句用于跳出代码块或者循环

let i = 0;
while(i < 10){
  console.log(i);
  i++;
  if(i === 5) break;
}
复制代码

当执行到 i 等于 5,就会跳出循环。

continue 语句用于终止本轮循环,返回循环结构头部,开始执行下一轮循环。

注意,如果存在多重循环,break 语句和 continue 语句都只针对当前循环层,不会影响到外层循环。

5. 标签(label)

JavaScript 语句前面有标签,相当于定位符,用于跳转到程序的任意位置。格式如下

label:
  语句
复制代码

标签常与 break 语句和 continue 语句配合使用,用于跳出特定循环。

标签也可用于跳出代码块

foo: {
  console.log(1);
  break foo;
  console.log('本行不会执行');
}
console.log(2);
//1
//2
复制代码

注意

{
  foo: 1
}
复制代码

上面代码并不是一个对象,表示一个区块,这个区块中有一个标签 foo
下面才是一个对象

let a ={
  foo: 1
}
复制代码
文章分类
前端
文章标签