一 条件 语句
1 if语句
if 语句- 只有当指定条件为 true 时,使用该语句来执行代码
if...else 语句- 当条件为 true 时执行代码,当条件为 false 时执行其他代码
if...else if....else 语句- 使用该语句来选择多个代码块之一来执行
语法
if (条件)
{
只有当条件为 true 时执行的代码
}
else if
if(条件){
只有当条件为true时执行的代码
} else if(条件){
当条件执行的代码
}else {
条件不执行的代码
}
2 switch语句
请使用 switch 语句来选择要执行的多个代码块之一。
语法
switch(n)
{
case 1:
执行代码块 1
break;
case 2:
执行代码块 2
break;
default:
n 与 case 1 和 case 2 不同时执行的代码
}
default 关键词
请使用 default 关键词来规定匹配不存在时做的事情:
实例
如果今天不是星期六或星期日,则会输出默认的消息:
vard=newDate().getDay();
switch(d)
{
case6:x="今天是星期六";
break;
case0:x="今天是星期日";
break;
default:
x="期待周末";}
document.getElementById("demo").innerHTML=x;
x的运行结果:期待周末;
二循环控制语句
JavaScript中提供了这些循环语句:
1 while 语句
一个while语句只要指定的条件求值为真(true)就会一直执行它的语句块。一个 while 语句看起来像这样:
while (condition)
statement
如果这个条件变为假,循环里的statement将会停止执行并把控制权交回给 while 语句后面的代码。
条件检测会在每次statement执行之前发生。如果条件返回为真,statement会被执行并紧接着再次测试条件。如果条件返回为假,执行将停止并把控制权交回给 while 后面的语句。
要执行多条语句(语句块),要使用块语句 ({ ... }) 包括起来。
var n=0;
var x=3;
while(n<3){
n++;
x+=n
}
2 DO.....while 语句
do...while语句一直重复直到指定的条件求值得到假(false)。 一个 do...while 语句看起来像这样:
do
statement
while (condition);
statement在检查条件之间会执行一次。要执行多条语句(语句块),要使用块语句 ({ ... }) 包括起来。 如果condition为真(true),statement将再次执行。 在每个执行的结尾会进行条件的检查。当condition为假(false),执行会停止并且把控制权交回给 do...while 后面的语句。
例子
在下面的例子中, 这个 do 循环将至少重复一次并且一直重复直到i不再小于 5。
do{
i+=1;
consle.log(i);
}
while(i<5);
3 for语句
一个for循环会一直重复执行,直到指定的循环条件为fasle。 JavaScript的for循环和Java与C的for循环是很相似的。一个for语句是这个样子的:
for ([initialExpression]; [condition];
[incrementExpression])
statement
当一个for循环执行的时候,会发生以下事件:
如果有初始化表达式initialExpression,它将被执行。这个表达式通常会初始化一个或多个循环计数器,但语法上是允许一个任意复杂度的表达式的。这个表达式也可以声明变量。
计算condition表达式的值。如果condition的值是true,循环中的statement会被执行。如果condition的值是false,for循环终止。如果condition表达式整个都被省略掉了,condition的值会被认为是true。
循环中的statement被执行。如果需要执行多条语句,可以使用块({ ... })来包裹这些语句。
如果有更新表达式incrementExpression,执行它,然后流程回到步骤2。
4 for....in 语句
这个for...in语句循环一个指定的变量来循环一个对象所有可枚举的属性。JavaScript 会为每一个不同的属性执行指定的语句。
for (variable in object) {
statements
}
例子
下面的函数通过它的参数得到一个对象和这个对象的名字。然后循环这个对象的所有属性并且返回一个列出属性名和该属性值的字符串。
functiondump_props(obj,obj_name){varresult="";for(variinobj){result+=obj_name+"."+i+" = "+obj[i]+"
";}result+="
";returnresult;}
对于一个对象拥有 make 和 model 属性的 car 对象来说,执行结果是:
car.make=Fordcar.model=Mustang
数组
虽然用for...in来迭代Array元素很诱人,但是它返回的除了数字索引外还有可能是你自定义的属性名字。因此还是用带有数字索引的传统的for循环来迭代一个数组比较好,因为如果你想改变数组对象,比如添加属性或者方法,for...in语句迭代的是 自定义的属性而不是数组的元素。
for...ofstatementEdit
该新特性属于 ECMAScript 2015(ES6)规范,在使用时请注意浏览器兼容性。
for...of语句在可迭代的对象上创建了一个循环(包括Array,Map,Set, 参数对象(arguments) 等等),对值的每一个独特的属性调用一个将被执行的自定义的和语句挂钩的迭代。
for (variableofobject) {statement}
下面的这个例子展示了for...of 和for...in两种循环语句之间的区别。与for...in循环遍历的结果是数组元素的下标不同的是,for...of 遍历的结果是元素的值:
letarr=[3,5,7];arr.foo="hello";for(letiinarr){console.log(i);// logs "0", "1", "2", "foo"}for(letiofarr){console.log(i);// logs "3", "5", "7" // 注意这里没有 hello}
label 语句
一个label提供了一个可以让你引用到您程序别的位置的标识符。例如,你可以用 label 标识一个循环, 然后使用 break 或者 continue 来指出程序是否该停止循环还是继续循环。
label 语句的语法看起来像这样:
label :
statement
label的值可以是任何的非保留字的 JavaScript 标识符,statement 可以是任意你想要标识的语句(块)。
break语句
使用break语句来终止循环,switch, 或者是链接到 label 语句。
当你使用不带 label 的break时, 它会立即终止当前所在的while,do-while,for,或者switch并把控制权交回这些结构后面的语句。
当你使用带 label 的break时,它会终止指定的标记(label)了的语句。
break 语句的语法看起来像这样:
break;
breaklabel;
第一种形式的语法终止当前所在的循环或 switch; 第二种形式的语法终止指定的 label 语句。
continue 语句
这个continue语句可以用来继续执行(跳过代码块的剩余部分并进入下一循环)一个 while, do-while, for, 或者 label 语句。
当你使用不带 label 的continue时, 它终止当前 while,do-while,或者 for 语句到结尾的这次的循环并且继续执行下一次循环。
当你使用带 label 的continue时, 它会应用被 label 标识的循环语句。
continue的语法看起来像这样:
continue;
continuelabel;
下面的例子展示了带有一个当 i 等于 3的 continue 语句的循环。 于是, n 取到的值是 1, 3, 7, 12。
var i=0;var n=0;while(i<5) {i++;if(i==3){continue;}n+=i;}