JS_高程3.基本概念(5)语句

1.if语句

2.do-while语句:后测循环语句,循环体内的代码至少执行一次。

3.while语句:前测循环语句。

4.for语句:前测循环语句。

  注意:在ECMAScript中不存在块级作用域,因此在循环内部定义的变量也可以在外部访问到。

eg:

1 var count=10;
2     for(var i=0;i<count;i++){
3         alert(i);
4     }
5     alert(i);

以上代码的执行效果是,弹出从0到9的警告框,这是for语句循环的结果,最后弹出显示10的警告框,这是for循环外的那条语句的效果,说明循环内部定义的变量也可以在外部访问到。

5.for-in语句

  for-in语句是一种精准的迭代语句,可以用来枚举对象的属性,

  语法:for (proerty in experssion)statement

eg:

1 for(var propName in window){
2         document.write(propName);
3     }

  上面的例子使用for-in循环来显示BOM中window对象所有的属性。每循环一次,都会将window对象中存在的一个属性名赋值给变量propName,直到对象中的所有属性都被枚举一遍为止。

  ECMAScript对象的属性没有顺序。因此,通过for-in循环输出的属性名的顺序是不可预测的,具体来讲,所有的属性都会被返回一次,但是返回的先后顺序可能会因浏览器而异。

  注意,如果迭代的对象的变量值为null或是undefined,for-in语句会抛出错误。ECMAScript5更正了这一行为,对这种情况不再抛出错误,而只是不执行循环体。为了保证最大限度的兼容性,建议在使用for-in循环之前,先检测确认该对象的值不是null或undefined。

W3C:

for...in 语句用于遍历数组或者对象的属性(对数组或者对象的属性进行循环操作)。

JavaScript for...in 语句

for...in 语句用于对数组或者对象的属性进行循环操作。

for ... in 循环中的代码每执行一次,就会对数组的元素或者对象的属性进行一次操作

语法:

for (变量 in 对象)
{
    在此执行代码
}

“变量”用来指定变量,指定的变量可以是数组元素,也可以是对象的属性。

eg:

1 var mycars = new Array()
2 mycars[0] = "Saab"
3 mycars[1] = "Volvo"
4 mycars[2] = "BMW"
5 
6 for (var x in mycars)
7 {
8 document.write(mycars[x] + "<br />")
9 }

6.label语句  使用label语句可以在代码中添加标签,以便将来使用。语法:label:statement

eg:参考下面的break和cuntinue语句例子。

7.break和continue语句

  break和continue语句用于在循环中精确地控制代码的执行。break会立即退出循环,强制继续执行循环后面的语句,而continue语句虽然也是立即退出循环,但是退出循环后悔立即从循环的顶部继续执行。

eg:

 1 outermost:
 2  for (var i=0;i<10;i++){
 3     for(var j=0; j<10;j++){
 4         if(i==5&&j==5){
 5             break outermost;
 6         }
 7         num++;
 8     }
 9  }
10  alert(num);

改为continue:

 1 outermost:
 2  for (var i=0;i<10;i++){
 3     for(var j=0; j<10;j++){
 4         if(i==5&&j==5){
 5             continue outermost;
 6         }
 7         num++;
 8     }
 9  }
10  alert(num);

8.with语句:用于将代码的作用域设置到一个特定的对象中。语法:with (expression) statement;
  注意:在严格模式下不允许使用with语句。由于大量的使用with语句会导致性能下降,同时也会给调试代码造成困难,因此在大型开发应用程序时,不建议使用with语句。

9.switch语句。

  注意:(1)switch语句中可以使用任何数据类型。

     (2)switch语句在比较值时使用的是全等操作符,因此不会发生类型转换。

原文地址:https://www.cnblogs.com/LinSL/p/6159208.html