条件语句
if 条件语句
语法: if ( condition ) statement1 else statement2
语法: if ( 条件 ) { 语句1 } else { 语句2 }
其中condition(条件)
可以是任意表达式,求值结果不一定是布尔值,ECMAScript会自动调用Boolean()转换函数将结果转换为一个布尔值,如果结果是true
,执行statement1;如果是false,
执行statemen2,
两个语句可以是代码,也可以代码块(以一对花括号括起来的多行代码),
demo1 :
if( i > 25 )
alert ( " Greater than 25 . "); //单行语句
else {
alert ( " Less than or equal to 25 ."); //代码块中的语句
}
demo2 :
var isMale = false;
if(isMale){
document.write('男');
} else {
document.write('女'); //上面是false,打印为女
}
不过if语句
也可以扩展为嵌套if
if(condition) statement1 else if (condition2) statement2 else statement3
if( 条件 ) { 语句1 } else if (条件2) { 语句2 } else { 语句3 }
demo:
var score = 85;
if(score > 80){
document.write('A');
} else if(score > 60){
document.write('B');
} else {
document.write('C');
}
switch语句
switch语句
与if语句
关系密切
语法:switch (expression) { //表达式
case value : statement //值1:语句
break; //跳出
case value : statement
break;
case value : statement
break;
case value : statement
break;
default : statement
}
demo:
var degree = 'A';
switch(degree){
case 'A':
document.write('优秀');
break;
case 'B':
document.write('良好');
break;
default:
document.write('合格');
}
switch
语句中每一个情形(case)
的含义:"如果表达式等于这个值(value),
则执行后面的语句(statement)
".而break关键字
会导致代码执行流跳出switch语句
.如果省略break,会导致执行完当前case,继续执行下一个case.default关键字
用于在表达式不匹配前面任何一种情况时候,执行机动代码.
循环语句
do-while 循环语句
do-while 语句
是一种后测试循环语句,即在对表达式求值之前,循环体内的代码至少会被执行一次.
语法: do {
statement
} while ( expression )
var i = 11 ;
do {
document.write(i);
i++;
} while ( i <= 10 ) //11
while 循环语句
while语句
属于前测试循环语句,在循环体内的代码被执行之前,就会对出口条件求值,循环体内的代码可能永远不会被执行.
语法: while ( expression ) statement
while( 表达式 ){ 语句 }
示例:
var i = 1 ;
while ( i <= 10 ) {
document.write(i);
i++;
} //12345678910
for循环语句
for语句
也是一种前测试循环语句,但它具有在执行循环之前初始化变量和定义循环后要执行的代码
语法:for( initialization; expression; post-loop-expression)statement
for(初始化; 循环条件; 更新表达式){语句} //中文解释
示例:
var count = 10 ;
for(var i = 0; i<count; i++){
alert(i);
}
另外,for语句
中的初始化表达式 控制表达式 循环后表达式都是可选的,
这三个表达式全部省略,就会创建一个无限循环,
for( ; ;){ //无限循环
dosomething();
}
break和continue语句
break和continue语句用于循环中准确控制代码的执行.其中,break语句会立即退出循环,强制执行循环后面的语句.而continue语句虽然也是立即退出循环,但退出循环后会从循环的顶部继续执行.
var num = 0 ;
for(var i =0; i<10; i++){
if(i%5 == 0) {
break;
}
num++;
}
alert(num); //4
结果4是次数,break语句的执行,导致了循环在num再次递增之前就退出了了.(跳出整个循环体)
var num = 0 ;
for(var i =0; i<10; i++){
if(i%5 == 0) {
continue;
}
num++;
}
alert(num); //8
结果为8,说明执行了8次,当变量i=5时,循环会在num再次递增之前退出,但接下来执行下一次循环,即i=6的循环,于是,循环再次执行了(跳出一次循环体)
for - in语句
for-in语句
是一种精准的迭代语句,可以用来枚举对象的属性.
语法:for(property in expression) statement
for(属性名 in 对象) {语句} //中文解释
示例:
var cat = {
name:'kitty',
age:2,
mew : function () {
console.log("喵喵喵")
}
}
如果我们想把上面的对象的属性名都打印出来,可以用for-in语句:
for(var p in cat){
document.write(p);
} //name age mew
如果表示要迭代的对象的变量值为null和undefined
,for-in
会抛出错误,不过ECMAScript5更改了这一行为,不在抛出错误,只是不执行循环体,,所以建议使用for-in之前,确认对象的值是不是null或undefined
with语句
with语句
的作用是将代码的作用域设置到一个特定的对象中.
语法:with(expression) statement
with(表达式) {语句} //中文解释
定义with语句的目的是为了简化多次编写同一个对象的工作,严格模式下不允许使用with语句
由于大量使用with语句会导致性能下降,同时也会给调试代码造成困难,因此开发大型应用程序时,不建议使用with语句
异常捕获语句
try{
语句
} catch (exception){
语句
} finally{
语句
}
demo:
try{
document.write(notDefined);
}catch(error){
console.log(error);
alert(error);
}finally{
alert('finally');
} //notDefined变量未定义的,是错误的,会执行catch里面的语句.
如果try里语句
执行出错的话,会到catch语句
中在语句中可以对错误执行一些操作,不管try语句是否出错,都会执行finally语句
.一般用于我们执行的代码不知道它是否出错,把它放到try catch语句中
语句的学习很简单,难得是实际应用,所以多练