1、if语句
if(条件){
条件为true进入
}else{
条件为false进入
}
注:
条件表达式运算后隐式转换为布尔值,若值为true则进入该语句。
在条件语句中大量用!配合完成不是这种非真进入。
多分支:
if(){
}else if(){
}else{
}
上面仅只执行其中的一个条件。
if(){
}
if(){
}
if(){
}
这种每个条件都会进行自己判断。
2、switch语句
switch(表达式){
case1:
break;
case2:
break;
case3:
break;
defeaut:
}
特点:
当表达式绝对等于(===)值时执行内容,
当不写break时具有可穿越性,
它的条件执行看起来非常清晰。
一般用于状态机。
3、while循环
while(条件){
循环体
}
特点:
它的效率执行大于for语句
功能较为复杂具有do……while。
break在while中的应用
var i=0;
while(true){
if(i>50) break;
console.log(i);
i++;
}
abc:while(true){
while(true){
console.log(i);
if(i>50) break abc ;
i++;
}
}
当遇到break时会结束此循环语句。
第二种为存在锚点的情况,它会直接跳出上层带有锚点值的循环。
continue在while中的应用
var i=0;
var sum=0;
while(i++<10){
if(i===5) continue;
sum+=i;
}
当遇到continue时直接跳过循环体下面要执行的语句,继续进入下次循环。
do……while循环
do{ 循环体 } ( 条件 )
特点:
先执行,在判断条件是否继续循环。
do……while一般使用++i的条件更为简便
不管条件是否满足,至少执行一次语句。
for循环
//求1~100的和
var sum = 0;
for(var i = 0; i < 100; i++) sum+=i;
console.log(sum)
for循环中第一个;前是循环变量初始值
第二个;前是条件
最后是变量向条件靠拢的方式。
特点与技巧:
循环变量初始值定义只执行一次,并不一定用var,可以定义多个变量。
循环条件是一个表达式,隐式转换为布尔值,为true时进入循环中。
最后的部分其实是每次循环完后执行的语句。
关于for的死循环
for( ; ; ){ }
for( ;true; ){}
可以使用死循环进行深度遍历
var obj = {
value:1,
link:{
value:2,
link:{
value:3,
link: {
value:4,
link: {}
}
}
}
}
for(;obj.link;obj=obj.link);
console.log(obj.value)
注意点:
注意当进行反向循环(从大到小)条件注意使用等号的问题。
在双重循环时,不要在内层中判断外层或改变外层变量。
如果使用break时,不写出跳出lable,它只会跳出当前层循环。
循环是同步的
不能次数超过十亿次,不能嵌套太多循环,一般不会超过两层。