万事不求人,一篇教你js语句从入门到入土

1,462 阅读4分钟

语句通常使用一个或多个关键字完成特定任务,可以很简单,也可以很复杂。这篇文章会细微的讲解语句,有不足的可以指出,多多交流

认为有用的点个赞鼓励下吧

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)

认为有用的点个赞鼓励下吧