1,语句
条件语句
循环语句
分支语句
break
continue
label语句
with语句
2,条件语句
if(条件){
代码
}
圆括号里面是条件 是布尔类型的 其它类型用 Boolean() 转换
当条件满足的时候 执行大括号里面的语句
if(条件){
代码1
}else{
代码2
}
必然执行其中一个代码
if(条件1){
代码1
}else if(条件2){
代码2
}
第2个语句块要求较严格 一半不推荐这种
可以用 if(条件1){
代码1
}
if(!条件1){
代码
}
来实现
3,循环语句
想办法让条件变为 false 否则死循环
while(条件){代码}
do{代码}while(条件)
for(var i=0;i<9;i++){代码}
for(var key in 数组或对象){代码}
for 循环一般是可以预测循环的次数的 while 循环不能预测循环次数
do{}while() 循环至少执行一次
for 循环可以这样写 var i=0;for(;i<9;){代码;i++} 不建议这么写
4,分支语句
switch(表达式、变量或值){
case 值或者表达式: 语句1 ;
break;
case 值或者表达式: 语句2;
break;
default: 默认语句;
break;
}
如果case 语句中省略 break 的话 会连着秩序每个语句
当值找不到 就会执行 default 的语句
switch() 中可以放一个值 然后 case 的表达式计算后和这个值去匹配 然后执行对应的语句
当多个计算结果都匹配的时候 只会执行第一个匹配的语句
5,终止语句
break
终止整个循环
continue
当前的这一轮循环不执行了 直接开始执行下一轮循环
6,label 语句
当执行多层循环的时候 用来确定想终止的循环
for(var i=0;i<10;i++){
console.log("i:"+i);
for(var j=0;j<10;j++){
console.log("i:"+i+" j:"+j);
if(i==5){break ;}
}
}
结果
i:9 j:6
VM319:4 i:9 j:7
VM319:4 i:9 j:8
VM319:4 i:9 j:9
undefined
想在内层循环中终止外层循环的执行 但是结果却只是终止了内层的循环
使用 label 语句
loopa:for(var i=0;i<10;i++){
console.log("i:"+i);
loopb:for(var j=0;j<10;j++){
console.log("i:"+i+" j:"+j);
if(i==5){break loopa;}
}
}
结果
i:4 j:9
VM317:2 i:5
VM317:4 i:5 j:0
undefined
这样就可以在内层循环终止外层循环了
7,with 语句
对象的成员可能还是一个对象
var obj={
items:{
name:'sukla',
age:30
}
}
获取name 和 age 的时候 要 通过
obj.items.name
"sukla"
obj.items.age
30
执行两次 obj.items
使用 with 语句的话
with(obj.items){
console.log(name,age)
}
VM501:2 sukla 30
只需要执行一次 obj.items
但是执行引擎要等到执行到的时候才知道相应的值都是什么
并不推荐使用