语句通常使用一个或多个关键字完成特定任务,可以很简单,也可以很复杂。这篇文章会细微的讲解语句,有不足的可以指出,多多交流
认为有用的点个赞鼓励下吧
if语句
if (condition) statement1 else statement2
大多数编程语言最常用的语句就是if,其中condition(条件)可以是任意表达式,如果对condition求值的结果是true,则执行statemeng1(语句1)如果是false,则执行statement2(语句2)。而且这两个语句既可以是一行代码,也可以是一个代码块
if(i>25){
alert("true")
}else{
alert("false")
}
不过,最佳实践是使用代码块
do-while
do-while是一种后测试循环语句,只有在循环体中的代码执行后,才会测试出口条件
var i = 0
do{
i+=2;
}while(i<10);
alert(i);
只要i<10,循环就会一直走下去,而且i的值最初只是0,每次循环都会递增2
while
while语句属于测试前循环语句,在循环体内的代码被执行前,就会对出口条件求值
var i =0;
while (i<10){
i+=2
}
循环体内的代码有可能永远不会执行
for语句
for也是一种前测试循环语句,但它会在执行循环前初始化变量和定义循环后要执行的代码
var count=10;
for (var i = 0;i < count ;i++){
console.log(i)
}
以上代码定义了i初始值为0,只有当条件表达式(i<count)返回true时,才会进入for循环。如果执行了循环体中代码,在一定会循环表达式(i++)。
这个for循环与下面while语句的功能相同
var count = 10;
var i = 0;
while(i < count){
console.log(i)
i++
}
for-in语句
for in 是一种精准的迭代语句,可以用来枚举对象
for (var propName in window){
document.write(propName)
}
使用for in 循环显示了bom中window对象的属性。这个过程会一直持续到对象中的所有属性都被枚举一边。
为了兼容性,建议使用前先确认该对象不是null或undefined
label语句
使用label语句可以在代码中添加标签,方便以后使用
start:for(var i =0;i < count; i++){
alert(i)
}
定义的start标签可以在以后由break或continue语句引用,加标签的语句一般都和循环语句配合使用
break和continue
break和continue语句用于在循环中精确的控制代码的执行,break会立即退出循环,并强制执行后面的语句。continue虽然也是立即退出循环,但是会从循环顶部执行
break
var num =0
for (var i =1; i < 10; i++){
if(i % 5 ==0){ //检查是否可以被5整除,如果是执行break
break
}
num++ //变量从0开始,用于记录循环次数
}
alert(num) // 在执行break,要执行的代码是alert,结果显示4.就是说i==5时,num++被执行了4次
这个例子中的循环会将i从1递增到10
continue
var num =0
for (var i =1; i < 10; i++){
if(i % 5 ==0){ //检查是否可以被5整除,continue
continue
}
num++ //变量从0开始,用于记录循环次数
}
alert(num) // num==8
num++总共被执行了8次。当i==5时,循环会在num再次递增前退出,但接下来执行的是下一次循环,i==6的循环。知道i==10时结束,num最终等于8是因为continue导致他少递增了一次
break和continue语句都可以与label语句联合使用,从而返回代码中特定位置
var num =0;
outermost: //表示外部的for语句
for (var i =1; i < 10; i++){
for(var i =0;i<10;i++){
if(i==5&&j==5){
break outermost //break带了outermost,将会导致break不仅不会退出j的循环,而且也会退出i的循环。
}
num++;
}
}
alert(num); //55
with 语句
with语句将代码的作用域设置到一个特定的对象中
with(location){ //使用with关联了location
var qs=search.substring(1);
var hostName=hostname;
var url= href
}
每个变量会被认为时局部变量,如果在局部变量找不到该变量的定义,就会查询location中是否有同名属性。如果发现了同名属性,则以location对象属性的值作为变量的值
严格模式下,不允许使用with,大量使用with语句会导致性能下降
switch语句
switch与if关系最为密切,并且与其他基于C的语句十分接近
switch(expression){
case value:statement
break;
case value:statement
break;
case value:statement
break;
default:statement
}
switch中的每个case含义是:如果表达式等于value,则执行statement。break会导致代码执行跳出switch,如果省略break就会在执行完case后,继续执行下一个case。最后的deault表示value不匹配前面任何一种情形,执行机动代码(相当于else)