💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
#第5章 语句 - <a href="#no1">5.1 表达式语句</a> - <a href="#no2">5.2 复合语句和空语句</a> - <a href="#no3">5.3 声明语句</a> - <a href="#no4">5.4 条件语句</a> - <a href="#no5">5.5 循环</a> - <a href="#no6">5.6 跳转</a> - <a href="#no7">5.7 其他语句类型</a> - <a href="#no8">5.8 JavaScript语句小结</a> ###**表达式在JS中是短语,那么语句就是JS整句或命令。** - 条件语句:JS解释器可以根据一个表达式的值来判断是执行还是跳过这些语句,如`if`语句和`switch`语句。 - 循环语句:可以重复执行语句,如`while`和`for`语句。 - 跳转语句:可以让解释器跳转至程序的其他部门继续执行,如`break`、`return`和`throw`语句。 ##<a name="no1">5.1 表达式语句</a> > 具有副作用的表达式是JS中最简单的语句。 ##<a name="no2">5.2 复合语句和空语句</a> > 可以用逗号运算符将几个表达式连接在一起,形成一个表达式,同样,JS中还可以将多条语句联合在一起,形成一条复合语句。只需要用花括号将多条语句括起来即可。 1. 语句结尾不需要分号。块中的原始语句必须以分号结束,但语句块不需要。 2. 语句块中的行都有缩进,这不是必须的,但是能提高代码可读性。 > 空语句:允许包含0条语句的语句。 如下所示: ; ##<a name="no3">5.3 声明语句</a> > `var`和`function`都是声明语句,它们声明或定义变量或函数。 ###5.3.1 var > `var`语句用来声明一个或多个变量。语法如下: var name_1 [ = value_1][,...,name_n [ = value_n]] **var 声明的变量是无法通过 delete 删除的。** > 如果`var`语句中的变量没有指定初始化表达式,那么这个变量的值初始为`undefined`。 ###5.3.2 function > 关键字`function`用来定义函数。语法如下: function funcname([arg1[, arg2 [..., argn]]]){ statements } **尽管函数声明语句和函数定义表达式包含相同的函数名,但二者仍然不同。两种方式都创建了新的函数对象,但函数声明语句中的函数名是一个变量名,变量指向函数对象。使用`var`的话,只有变量声明提前了——变量的初始化代码仍然在原来的位置。然而使用函数声明语句的话,函数名称和函数体均提前。** ##<a name="no4">5.4 条件语句</a> > 条件语句是通过判断指定表达式的值来决定执行还是跳过某些语句。 ###5.4.1 if if(expression) statement ###5.4.2 else if if(n == 1){ //执行代码1 }else if(n == 2){ //执行代码2 }else{ //之前的条件都为false,则执行这里的代码块 } ###5.4.3 switch switch(n){ case 1: // 执行代码块1 break; case 2: // 执行代码块2 break; case 3: // 执行代码块3 break; default: // 执行代码块4 break; } ##<a name="no5">5.5 循环</a> ###5.5.1 while while(expression){ statement } ###5.5.2 do/while do statement while(expression) ###5.5.3 for for(initialize; test; increment) statement ###5.5.4 for/in for(variable in object) statement ##<a name="no6">5.6 跳转</a> > 跳转语句可以使JS执行从一个位置跳转到另一个位置。 ###5.6.1 标签语句 > 语句是可以添加标签的,标签是由语句前的标识符和冒号组成: identifier: statement ###5.6.2 break语句 > 单独使用`break`语句的作用是立即退出最内层的循环或`switch`语句。 break; ###5.6.3 continue语句 > `continue`语句和`break`语句非常类似,但它不是退出循环,而是转而执行下一次循环。 continue; ###5.6.4 rerturn语句 > 函数中的`return`语句即是指定函数调用后的返回值。 return expression; **return语句只能在函数体内出现,否则就会报语法错误。** ###5.6.5 throw语句 throw expression; ###5.6.6 try/catch/finally语句 > `try/catch/finally`语句语句是JS的异常处理机制。其中`try`从句定义了需要处理的异常所在代码。`catch`从句跟随在`try`从句之后,当`try`块内某处发生了异常时,调用`catch`内的代码逻辑。`catch`从句后跟随`finally`块,后者中放置清理代码,不管`try`块中是否产生异常,`finally`块内的逻辑总是会执行。 try{ //通常来讲,这里的代码会从头执行到尾而不会产生任何问题。 //但有时会抛出一个异常,要么是由throw语句直接抛出异常, //要么就是通过调用一个方法间接抛出异常 } catch(e){ //当且仅当try语句块抛出了异常,才会执行这里的代码 //这里可以通过局部变量e来获得对Error对象或者抛出的其他值的引用 //这里的代码块可以基于某种原因处理这个异常,也可以忽略这个异常 //还可以通过throw语句重新抛出异常 } finally{ //不管try语句块是否抛出了异常,这里的逻辑总是会执行,终止try语句块的方式有: // 1、正常终止,执行完语句块的最后一条语句 // 2、通过break、continue或return语句终止 // 3、抛出一个异常,异常被catch从句捕获 // 4、抛出一个异常,异常未被捕获,继续向上传播 } ##<a name="no7">5.7 其他语句类型</a> ###5.7.1 with语句 > `with`语句用于临时扩展作用域链。语法如下: with(object) statement //这条语句将object添加到作用域链的的头部,然后执行statement,最后把作用域链恢复到初始状态。 ###5.7.2 debugger语句 > `debugger`语句用来产生一个断点。 ###5.7.3 “use strict” > 使用`use strict`指令的目的是说明(脚本或函数中)后续的代码将会解析为严格代码。 ##<a name="no8">5.8 JavaScript语句小结</a> > 略 **P116-117列出了每种语句的语法和用途**