JavaScript分支语句
概念
表达式在javascript中是短语,那么语句就是javascript整句或命令。正如英文是用点号作结尾来分隔语句,javascript语句是以分号结束。
javascript程序无非就是一系列可执行语句的集合。
分号 ;
分号用于分隔JavaScript 语句。
通常我们在每条可执行的语句结尾添加分号。使用分号的另一用处是在一行中编写多条语句
声明语句
var和function都是声明语句,它们声明变量或定义函数。 这些语句定义标识符(变量名和函数名)并给其赋值,这些标识符可以在程序的任何地方使用
var语句用来声明一个或者多个变量 ECMAScript的变量是松散类型的,即可以用来保存任何类型的数据(未经初始化的变量,会保存一个特殊值undefined).
关键字function用来定义函数。两种定义方式
1var f = function(x){ return x+1;}//将表达式赋值给一个变量
2function f(x){ return x+1;} //含有变量名的语句
条件语句
条件语句是通过判断指定表达式的值来决定执行还是跳过某些语句。
if语句是一种基本的控制语句,它让javascript程序可以选择执行路径,更准确的说,就是有条件的执行语句javascript语法规定,if关键字和带圆括号的表达式之后必须跟随一条语句,但可以使用语句块将多条语句合并成一条。
if语句的第二种形式引入了else从句,当(条件)的值是false的时候执行else中的逻辑
else if
if/else语句通过判断一个表达式的计算结果来选择执行两条分支中的一条。但当代码中有多条分支的时候该怎么办呢?一种解决办法是使用else if 语句。
if(n==1){ //代码块
}else if(n==2){
//...代码块
}
switch
定义:使用switch 语句来选择要执行的多个代码块之一。
if语句在程序执行过程中创建一条分支,并且可以使用else if 来处理多条分支。然而,当所有的分支都依赖于同一个表达式的值时,else if并不是最佳解决方案。
switch语句正适合处理这种情况。关键字switch之后紧跟着圆括号括起来的一个表达式,随后是一对花括号括起来的代码块
switch语句的完整语法要比这复杂一些。代码块中可以使用多个由case关键字标识的代码片段,case之后是一个表达式和一个冒号。
switch(n){
case 1:
//代码块1
break;
case 2:
//代码块2
break;
default:
//......
break;
}
break是退出循环
“default:”标签中的代码块。如果没有“default:”标签,switch语句将会跳过它的所有代码块
循环语句
定义:循环语句就是程序执行的一个回路,可以让一部分代码重复执行。
for语句对常用的循环模式做了一些简化。大部分的循环都具有特定的计数器变量。在循环开始之前要初始化这个变量,然后在每次循环执行之前都检测一下它的值。最后计数器变量做自增操作,否则就在循环结束后、下一次判断循环条件前做修改。在这一类循环中,计数器的三个关键操作就是初始化、检测和更新。for语句就将这三步操作明确声明为循环语句的一部分,各自使用一个表达式来表示。
for语句的语法格式:
for(initialize;test;increment) statement
三个表达式之间用分号隔开,他们分别负责初始化操作、循环条件判断和计数器变量的更新。
将它们放在循环的第一行会更容易理解for循环正在做什么,而且也可以防止忘记初始化或者递增计数器变量。
initialize表达式只在循环开始之前执行一次。每次循环执行之前会执行test表达式,并判断表达式的结果来决定是否执行循环体,如果判断结果为真,则执行statement循环体。最后,执行increment表达式(通常是“++”,“--”构成的表达式)
break是退出循环,continue是转而执行下一次循环
While
基本结构
While(条件){
需要执行的代码
}
(该语句与For 语句一样,当条件为真时,重复循环,否则退出循环。)注意:使用while(true)将会创建一个死循环
do while
do{
循环体
}while(逻辑判断)
do/while循环并不如while循环那么常用。因为那种至少执行一次的循环并不常见
区别:dowhile不管逻辑条件是否满足都会进行循环体一次,而while和for却不会。
标签语句
语句是可以添加标签的,标签是由语句前的标识符和冒号组成的: Label:statement
通过给循环定义一个标签名,可以在循环内部使用break和continue来退出循环或者直接跳到下一个循环的开始。 只有break和continue可以使用语句标签。
这里用作标签的Label必须是一个合法的javascript标识符,而并不能使一个保留字。标签的命名空间和变量或者函数的命名空间是不同的,因此可以使用同一个标识符作为语句标签和作为变量名或函数名。
一个语句标签不能和它内部的语句标签重名,但在两个代码段不相互嵌套的情况下是可以出现同名的语句标签的。带有标签的语句还可以带有标签,也就是说,任何语句可以有很多个标签。
return
函数调用是一种表达式,而所有的表达式都有值。函数中的return语句既是指定函数调用后的返回值