目录
- 条件判断
- 循环
- for循环结构
- for...in
- while循环结构
- do...while结构
- switch语句
条件判断
语法:if(条件){..为真执行语句..} else{..非真执行语句..}
var age = 20;
if (age >= 18) { // 如果age >= 18为true,则执行if语句块alert('adult');
} else { // 否则执行else语句块alert('teenager');
}
如果执行语句只有一句,其实是可以省略
{}
的,但是这种写法容易造成,在后期想要添加语句的时候,添加却忘记使用{}
,造成语义歧义。
var age = 20;
if (age >= 18)alert('adult');
elseconsole.log(&#39;age <18&#39;); // 添加一行日志alert(&#39;teenager&#39;); // <- 这行语句已经不在else的控制范围了
建议永远写上{}
多选择判断语法&#xff1a;if(){....} else if(){....} else{....}
var age &#61; 13;if (age>&#61;6&&age<18){alert(&#39;teenager&#39;);}else if (age>18){alert(&#39;adult&#39;);}else{alert(&#39;kid&#39;);}
js中的布尔值判定&#xff1a;
Javascript中把null、undefined、0、NaN和空字符串&#39;&#39;视为false&#xff0c;其他均为true
循环 for循环结构
语法&#xff1a;
var x &#61;0;
var i;
for (i &#61; 1; i<&#61;1000; i&#43;&#43;){ //初始条件&#xff1b;判断条件&#xff1b;递增条件x &#61; x&#43;i;
}
for循环最常用的地方是利用索引来遍历数组&#xff1a;
var arr &#61; [&#39;Apple&#39;, &#39;Google&#39;, &#39;Microsoft&#39;];
var i, x;
for (i&#61;0; i
以上代码会依次打印arr中的三个元素。
for循环的三个条件其实都是可以省略的
for(;;){}
&#xff0c;但是要在执行语句中添加一个break
否则就是死循环。其中break可以添加在条件判断语句中。
var x &#61; 0;
for (;;) { // 将无限循环下去if (x > 100) {break; // 通过if判断来退出循环}x &#43;&#43;;
}
for...in
for循环的一个变体就是for ... in
循环&#xff0c;可以把一个对象的所有属性依次循环出来&#xff1a;
var o &#61; {name: &#39;Jack&#39;,age: 20,city: &#39;Beijing&#39;
};
for (var key in o) {alert(key); // &#39;name&#39;, &#39;age&#39;, &#39;city&#39;
}
要过滤掉对象继承的属性&#xff0c;用hasOwnProperty()
来实现&#xff1a;
var o &#61; {name: &#39;Jack&#39;,age: 20,city: &#39;Beijing&#39;
};
for (var key in o) {if (o.hasOwnProperty(key)) {alert(key); // &#39;name&#39;, &#39;age&#39;, &#39;city&#39;}
}
注意&#xff0c;
for.. in
对Array
的循环得到的是str类型&#xff0c;而不是number。
while循环结构
语法&#xff1a;
while(条件){执行语句;
}
do...while结构
最后一种循环是do { ... } while()
循环&#xff0c;它和while
循环的唯一区别在于&#xff0c;不是在每次循环开始的时候判断条件&#xff0c;而是在每次循环完成的时候判断条件&#xff1a;
var n &#61; 0;
do {n &#61; n &#43; 1;
}
while (n <100);
n; // 100
用do { ... } while()
循环要小心&#xff0c;循环体会至少执行1次&#xff0c;而for
和while
循环则可能一次都不执行。
switch语句
语法&#xff1a;
switch(n) //一个变量&#xff0c;用于选择case代码块
{
case 1:执行代码块 1break; //用于阻止代码向向下一代码块运行
case 2:执行代码块 2break;
default:n 与 case 1 和 case 2 不同时执行的代码
}
case
后面只能跟数字吗&#xff1f;
var inp1&#61; &#39;this&#39;;var inp2&#61;&#39;then&#39;;var inp3 &#61; &#39;that&#39;;var inp4 &#61; &#39;the&#39;;var x &#61; inp1;switch (x){case inp1:console.log(x);break;case inp2:console.log(x);break;case inp3:console.log(x);break;case inp4:console.log(x);break;default:console.log(&#39;no!&#39;);break;}
由上面的例子可以看出&#xff0c;case
后面跟的是一个变量。通过变量的名称选择case执行的代码块