JavaScript复习(一)——语句

语句

if语句

语法

if(condition) statement1 else statement2

其实中condition(条件) 可以是任意表达式;而且对这个表达式求值的结果不一定是布尔值.ECMAScript会自动调用Boolean( )转换函数将这个表达式的结果转换成一个布尔值.结果为true,执行statement1.结果为false.执行statement2.

var i=30;
for(i>20){  
	alert(i+"大于20") //条件结果为true,执行这条代码
}else{
	alert(i+"小于20")
}

do-while语句

do-while语句是一种后测试循环语句 ,即只有在循环体中的代码执行之后.才会测试出口条件.

换句话说,在对条件表达式求值之前,循环体内的代码至少会被执行一次.

语法

do{
	statement;
}while(expression);
//示例
var i=0;
do{
	i+=2;
}while(i<10);
alert(i);

在这个例子中,只要i的值小于10,循环就会一直继续下去.而且i的值最初为0.

注:do-while这种后测试循环语句常用于循环体中的代码只要要执行一次的情形.

while语句

while语句属于前测试循环语句,也就是说,循环体的代码在被执行之前,就会对出口条件求值

因此,循环体内的代码可能永远不会执行.

语法

var i=0;
while(i<10){
	i+=2;
}

这个例子中,i开始的值为0,只要i<10,循环就会继续.

for语句

for语句也是一种前测试循环语句,但它具有在执行循环之前,初始化变量和定义循环后要执行的代码的能力.

语法

var count=10;
for(var i=0;i<count;i++){
	alert(i);
}

以上代码定义了变量i的初始值为0,只有当表达式(i<count)返回true的时候,才会进入for循环,因此也可能不会执行循环.如果执行了循环体中的代码,那么一定会对循环后的表达式(i++)求值,即递增i的值.

注:for语句存在极大的灵活性,所以它是ECMAScript中最常用的一个语句.

for-in语句

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

语法

for(var propName in window){
	document.write(propName+"</br>");
}

这个例子中,我们使用了for-in语句来显示了BOM中window对象的所有属性.每次执行循环时,都会将window对象中存在的一个属性名复制给变量propName.这个过程会一直持续到对象中的所有属性都被枚举一遍为止.

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

label语句

使用label语句可以在代码中添加标签,以便于将来使用

语法

//lable:statement

start:for(vari=0;i>count;i++){
	alert(i);
}

这个例子中定义的start标签可以将来由break或者continue语句引用.加标签的语句一般都是要与for语句等循环语句配合使用.

break和continue语句

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

举个栗子

var num=0;
for(var i=1;i<10;i++){
	if(i % 5 == 0 ){
		break;
	}
	num++;
}
console.log(num);  //4

这个例子中的for循环会将i递增到10.在循环体内,由一个if语句检查i是否可以被5整除,如果可以,则会执行break语句退出循环,所以,在i等于5的时候,会结束循环,因此num++只执行了4次,所以num最后的结果为4.

但是当我们把break换成continue,相信很快就能看出差别

var num=0;
for(var i=1;i<10;i++){
	if(i % 5 == 0 ){
		continue;
	}
	num++;
}
console.log(num);  //8

最后的结果为8,说明num++只执行了8次,因为在当i的值5和10的时候,continue语句会立刻执行,循环会在执行递增语句之前推出回到开头,所以才导致最后的结果为8.

with语句

with语句的作用是将代码的作用域设置到一个特定的语句中.

语法

with (expression) statement;

定义width语句的目的主要是为了简化多次编写同一个对象的工作

举个栗子

var qs=location.search.substring(1);
var hostName=location.hostName;
var url=location.href;

//利用with语句进行优化
with(location){
	var qs=search.substring(1);
	var hostName=hostName;
	var url=href;
}

上面几行代码都包含location对象,所以可以使用with语句优化.

switch语句

switch语句与if语句的关系最为密切,而且也是在其他语言中普遍使用的一种控制流语句.

语法

switch(key){
	case value:statement1
	break;
	case value:statement2
	break;
	case value:statement3
	break;
	case value:statement4
	break;
	default:statementX
}

switch语句中的每一种情形(case)的含义是:"如果表达式的值等于(value),则执行后面的语句(statement)."而break关键字会到导致代码执行跳出switch语句.如果省略了break关键字,就会导致执行完当前的case后,继续执行下一个case,最后default关键字则用于表达式不匹配前面任何一种情况的时候,执行它后面的代码.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值