【JavaScript】循环结构

条件判断

语法: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');
else
    console.log('age < 18'); // 添加一行日志
    alert('teenager'); // <- 这行语句已经不在else的控制范围了

建议永远写上{}

多选择判断语法:if(){....} else if(){....} else{....}

var age = 13;
        if (age>=6&&age<18){
            alert('teenager');
        }
        else if (age>18){
            alert('adult');
        }
        else{
            alert('kid');
        }

js中的布尔值判定:
javascript中把null、undefined、0、NaN和空字符串''视为false,其他均为true

循环

for循环结构

语法:

var x =0;
var i;
for (i = 1; i<=1000; i++){   //初始条件;判断条件;递增条件
    x = x+i;
}

for循环最常用的地方是利用索引来遍历数组:

var arr = ['Apple', 'Google', 'Microsoft'];
var i, x;
for (i=0; i<arr.length; i++) {
    x = arr[i];
    console.log(x);
}

以上代码会依次打印arr中的三个元素。

for循环的三个条件其实都是可以省略的for(;;){},但是要在执行语句中添加一个break否则就是死循环。其中break可以添加在条件判断语句中。

var x = 0;
for (;;) { // 将无限循环下去
    if (x > 100) {
        break; // 通过if判断来退出循环
    }
    x ++;
}

for...in

for循环的一个变体就是for ... in 循环,可以把一个对象的所有属性依次循环出来:

var o = {
    name: 'Jack',
    age: 20,
    city: 'Beijing'
};
for (var key in o) {
    alert(key); // 'name', 'age', 'city'
}

要过滤掉对象继承的属性,用hasOwnProperty()来实现:

var o = {
    name: 'Jack',
    age: 20,
    city: 'Beijing'
};
for (var key in o) {
    if (o.hasOwnProperty(key)) {
        alert(key); // 'name', 'age', 'city'
    }
}

注意,for.. inArray的循环得到的是str类型,而不是number。

while循环结构

语法:

while(条件){
    执行语句;
}

do...while结构

最后一种循环是do { ... } while()循环,它和while循环的唯一区别在于,不是在每次循环开始的时候判断条件,而是在每次循环完成的时候判断条件

var n = 0;
do {
    n = n + 1;
}
while (n < 100);
n; // 100

do { ... } while()循环要小心,循环体会至少执行1次,而forwhile循环则可能一次都不执行。

switch语句

语法:

switch(n)  //一个变量,用于选择case代码块
{
case 1:
  执行代码块 1
  break;   //用于阻止代码向向下一代码块运行
case 2:
  执行代码块 2
  break;
default:
  n 与 case 1 和 case 2 不同时执行的代码
}

case后面只能跟数字吗?

    var inp1= 'this';
    var inp2='then';
    var inp3 = 'that';
    var inp4 = 'the';
    var x = 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('no!');
            break;
    }

由上面的例子可以看出,case后面跟的是一个变量。通过变量的名称选择case执行的代码块

原文地址:https://www.cnblogs.com/scott-lv/p/7753904.html