JavaScript流程控制
JavaScript流程控制
JavaScript和java语言语言,一门独立的编程语言,有自己的流程控制:
1.条件语句
1.1、if分支语句
JavaScript使用if(){...}else{...}来进行条件判断,例如,根据年龄显示不同内容,可以用i语句实现如下:
var age = 20; if(age >= 18){//如果age >= 18为true,则执行if语句块 alert("成年"); }else{ //否则执行else语句块 alert("未成年"); }
其中else语句是可选的。如果语句块只包含一条语句, 那么可以省略{}:
var age = 20; if(age >= 18) alert(成年); else aler(未成年);
如果还要更细致地判断条件,可以使用多个if...else if..的组合。
if...else...语句的执行特点是多选一。在多个if...else...语句中,如果某个条件成立,则后续就不再继续判断了。
JavaScript把null、undefined、0、NaN和空字符串视为false, 其他值一概视为true。
1.2、switch...case分支语句
语法:
switch(表达式) { case 1: //代码块 break; case n: //代码块 break; default: //代码块 break; }
- 计算一次 switch 表达式
- 把表达式的值与每个 case 的值进行对比
- 如果存在匹配,则执行关联代码
- 值必须与要匹配的类型相同。
2、循环语句
在JS中循环有以下几种语句:
- for - 循环代码块一定的次数
- for/in - 循环遍历对象的属性
- while - 当指定的条件为 true 时循环指定的代码块
- do/while - 同样当指定的条件为 true 时循环指定的代码块
2.1 for循环
语法:
for (语句 1; 语句 2; 语句 3) { 被执行的代码块 }
语句 1 (代码块)开始前执行
语句 2 定义运行循环(代码块)的条件
语句 3 在循环(代码块)已被执行之后执行
2.2 for...in循环
语法:
for ( [var] variable in <object | array){ statement }
variable 表示一个变量,可以在其前面附加 var 语句,用来直接声明变量名。in 后面是一个对象或数组类型的表达式。在遍历对象或数组过程中,把或取的每一个值赋值给 variable。
然后执行 statement 语句,其中可以访问 variable 来读取每个对象属性或数组元素的值。执行完毕,返回继续枚举下一个元素,以此类推知道所有元素都被枚举为止。
对于数组来说,值是数组元素的下标;对于对象来说,值是对象的属性名或方法名。
2.3 while循环
语法:
while (expr){ statement }
当表达式 expr 的值为真时,将执行 statement 语句,执行结束后,再返回到 expr 表达式继续进行判断。直到表达式的值为假,才跳出循环,执行下面的语句。
2.4 do...while语句
do/while 与 while 循环非常相似,区别在于表达式的值是在每次循环结束时检查,而不是在开始时检查。因此 do/while 循环能够保证至少执行一次循环,而 while 循环就不一定了,如果表达式的值为假,则直接终止循环不进入循环。语法格式如下:
do{ statement }while(expr)
3、其它语句
3.1 break语句
break无条件从当前正在执行的循环或者switch语句终断并退出。
如果在break后加上一个lable标号名,那么终断退出循环后,就会跳到标号对应的语句上去。
3.2 continue语句
continue语句的工作模式和break有点类似,都有结束循环的作用,不样的地方在于,break彻彻底底结束了循环,而continue只是结束了循环中的一次循环,并没有彻彻底底终止循环。注意区别!
3.3 return语句
return用于返回函数的结果值,如果返回的值是一个表达式,那js会先运算表达式,然后将表达式的计算结果返回。
需要注意的是: return语句只能用在函数体里。
3.4 with语句
with语句用于暂时修改作用域,
用法我们通过一一个例子给大家演示说明:
//比如:定义一个对象 var beautifulBoy={ name:'北冥', sex:'男' } //一般的调用方式 console.log(beautifulBoy.name); console.log(beautifulBoy.sex); //使用with之后的调用 with(beautifulBoy){ console.log(name); console.log(sex); }
with在ES5版本的标准中,提出严格模式下,不让用了,所以这个知识点了解一下就行。