哪有时间学JavaScript③语句
一 语句
1.1 语句
语句是一个程序的基本单位,JavaScript的程序就是由一条一条语句构成的,每一条语句使用;
结尾。
JavaScript中的语句默认是由上至下顺序执行的,但是我们也可以通过一些流程控制语句来控制语句的执行顺序。
1.2 代码块
代码块是在大括号 {}
中所写的语句,以此将多条语句的集合视为一条语句来使用。
例如:
{
var a = 123;
a++;
alert(a);
}
我们一般使用代码块将需要一起执行的语句进行分组,JS的代码块只有分组的功能,不能隔离,即没有局部变量。
二 选择结构(分支结构)
2.1 条件判断语句——if语句
语句主要包括两类,if
语句和 if…else
语句。
if(表达式)
{
语句块
}
如果表达式为真,则执行语句块,否则不执行。
if(表达式)
{
语句块1
}
else(表达式)
(
语句块2
)
如果表达式为真,则执行语句块1,否则执行语句块2。
else
总是与它前面最近的且没有配对的if
相匹配。为避免出现误解,建议每个语句块都使用大括号,哪怕只有1条语句。
2.2 条件分支语句——switch 语句
- 对于有多种情况需要分别判断处理的情形,除了上节所说的
if嵌套语句
外,JavaScript语言还提供了另一种多分支选择语句:switch语句
。 - 语法格式为:
switch() 后面是不用;
。
case 不需要tab,每一个分支写完需要加:
。
break 结束语句需要加;
。
switch(表达式)
{
case 常量表达式1:语句系列1
case 常量表达式:语句系列2
break;
case 常量表达式3:
case 常量表达式4:
语句系列3 /*语句包括;*/
break;
......
case 常量表达式n:语句系列n
default: 语句系列n+1
}
- 有关
switch语句
的说明:
①
switch
后面的表达式可以为整型、字符型或者枚举型,但不允许是实型;
②case
后面必须为常量,且类型应与switch
中表达式的类型相同;
③switch
语句的执行过程是:首先计算switch
后面表达式的值,然后与各case
分支的常量进行全等匹配,与哪个常量相等,就从该分支的语句序列开始执行,直至遇到break
或者switch
语句块的右大括号;
④default
分支主要用于处理switch
表达式与所有case
常量都不匹配的情况。它在语法上可以省略,但推荐使用。
三 循环结构
循环结构是指程序中的某些语句和代码,在“预设条件”的控制下可以执行多次。C语言中的循环控制语句包括while
、do…while
和 for
。
3.1 while 语句
while
语句又称当型循环语句,其语法为:
while(表达式)
{
语句块
}
其中,表达式可以是任何合法的C语言表达式,它的计算结果用于判断语句块是否该被执行。语句块是需要重复执行语句的集合,它也被称为循环体。
①计算表达式的值。若为真,则转步骤②;否则退出循环,执行while
的下一条语句。
②执行语句块(即循环体),并返回步骤①。
3.2 do…while 语句
do…while
语句又称直到型循环语句。- 其语法为:
do
{
语句块
} while(表达式);
其中,表达式、语句块的含义与while
语句相同。
3.3 for 语句
for
语句是最常用、功能也最强大的循环控制语句。- 其语法为:
for (表达式1;表达式2;表达式3)
{
语句块
}
- 其具体执行过程如下:
①计算表达式1的值。
②计算表达式2的值。若为真,则转步骤③;否则退出循环,执行for的下一条语句。
③执行语句块,即循环体。
④计算表达式3的值,然后转步骤②。
在for语句中,表达式1、表达式2、表达式3均可以省略。当表达式2省略时,默认其计算结果为真。
3.4 break与continue label
break
与 continue
是两个较为特殊的流程控制关键词,主要用于循环的中断控制。这两者的区别是:break
是结束本层循环体的运行,退出本层循环;continue
只是提前结束本次循环体的运行,忽略循环体内其后面的语句,然后重新判断循环条件,并未退出循环体。
if
语句中不能使用continue
那如果我们想要跳出多层循环或者跳到指定位置该怎么办呢?可以为循环语句创建一个label
,来标识当前的循环,类似于C中的goto
,如下例子:
outer: for (var i = 0; i < 10; i++) {
for (var j = 0; j < 10; j++) {
if (j == 5) {
break outer;
}
console.log(j);
}
}
四 测试程序性能
在程序执行前,用console time()
开始计时器,它需要一个字符串标识
格式:
console time(字符串)
//在这里插入测试代码片
console timeEnd(字符串)