3.26 学前端 JavaScript之控制语句

本文详细介绍了JavaScript中的控制语句,包括if-else、switch-case、for循环、while循环等的基本格式及应用场景,对比了if与switch的区别,并给出了异常处理的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

控制语句

if 控制语句

功能说明

  • 如果表达式的值为true则执行语句1,
  • 否则执行语句2
//if-else基本格式
if (表达式){
    语句1;
    ......;
}
else{
    语句2;
    .....;
}

70

var x= (new Date()).getDay();
//获取今天的星期值,0为星期天
var y;
if ( (x==6) || (x==0) ) {
    y="周末";
}
else{
    y="工作日";
}
alert(y);
//等价于
y="工作日";
if((x==6)||(x==0)){
    y="周末";
}
  • if 可以单独使用
//if语句嵌套格式
if (表达式1) {
    语句1;
}else if (表达式2){
    语句2;
}else if (表达式3){
    语句3;
} else{
    语句4;
}

70

var x= (new Date()).getDay();
if (x==1){
    y="星期一";
}else if (x==2){
    y="星期二";
}else if (x==6){
    y="星期六";
}else if (x==0){
    y="星期日";
}else{
    y="未定义";

switch 选择控制语句

功能说明

  • 如果给定的值等于case,执行以后的所有语句
  • 否则执行default的语句
switch基本格式
switch (表达式) {
    case1:语句1;break;
    case2:语句2;break;
    case3:语句3;break;
    default:语句4;
}
70
switch(x){
    case 1:y="星期一";    break;
    case 2:y="星期二";    break;
    case 3:y="星期三";    break;
    case 4:y="星期四";    break;
    case 5:y="星期五";    break;
    case 6:y="星期六";    break;
    case 7:y="星期日";    break;
    default: y="未定义";
}

switch 与if else 的区别

  • if 语句适用范围比较广,只要是 boolean 表达式都可以用 if 判断;
  • 而 switch 只能对基本类型进行数值比较。两者的可比性就仅限在两个基本类型比较的范围内。
  • 说到基本类型的数值比较,那当然要有两个数。然后重点来了——
    • if 语句每一句都是独立的,看下面的语句:
      • if (a == 1) …
      • else if (a == 2) …
      • 这样 a 要被读入寄存器两次,1 和 2 分别被读入寄存器一次。于是你是否发现其实 a 读两次是有点多余的,在你全部比较完之前只需要一次读入寄存器就行了,其余都是额外开销。但是 if 语句必须每次都把里面的两个数从内存拿出来读到寄存器,它不知道你其实比较的是同一个 a。
    • switch比else if结构更加简洁清晰,使程序可读性更强,效率更高。
      • 于是 switch case 就出来了,把上面的改成 switch case 版本:

    switch (a) {
        case 0:
            break;
        case 1:
    }

总结:

  1. switch用来根据一个整型值进行多路分支,并且编译器可以对多路分支进行优化
  2. switch-case只将表达式计算一次,然后将表达式的值与每个case的值比较,进而选 择执行哪一个case的语句块
  3. if..else 的判断条件范围较广,每条语句基本上独立的,每次判断时都要条件加载 一次。
  4. 所以在多路分支时用switch比if..else if .. else结构要效率高。

for循环基本格式

功能说明

  • 实现条件循环,当条件成立时,执行语句1,否则跳出循环体
for (初始化;条件;增量){
    语句1;
    ...
}

70

for (var i=1;i<=7;i++){
    document.write("<H"+i+">hello</H "+i+"> ");
    document.write("<br>");
}
----------------------------------------------
    var arr=[1,"hello",true]//var dic={"1":"111"}
    for (var i in arr){
        console.log(i)
        console.log(arr[i])
    }

注意:

    doms=document.getElementsByTagName("p");
    for (var i in doms){
    console.log(i); // 0 1 2 length item namedItem
    //console.log(doms[i])
    }
//循环的是你获取的th一个DOM元素集,for in用来循环对象的所有属性,dom元素集包含了你上面输出的属性。
//如果你只要循环dom对象的话,可以用for循环:
    for (var i=0;i<doms.length;i++){
        console.log(i) ; // 0 1 2
        //console.log(doms[i])
    }

结论:

  • for i in 不推荐使用.

while 循环控制语句

功能说明

  • 运行功能和for类似,当条件成立循环执行语句花括号{}内的语句,否则跳出循环
while循环基本格式
while (条件){
语句1...
}

70

var i=1;
while (i<=7) {
    document.write("<H"+i+">hello</H "+i+"> ");
    document.write("<br>");
    i++;
}
//循环输出H1到H7的字体大小
<script language="JavaScript">
/* sayhello是定义的函数名,前面必须加上function和空格*/
function sayHello(){
    var hellostr;
    var myname=prompt("请问您贵姓?","苑"); 
    hellostr="您好,"+myname+'先生,欢迎进入"探索之旅"!';
    alert(hellostr); 
    document.write(hellostr);
}
 //这里是对前面定义的函数进行调用
sayHello();
</script>

练习:

  • 分别用for循环和while循环计算出1-100的和?
var i=1;
var sum=0;
for(i=1;i<=100;i++){
    sum+=i;
}
//-------------------//
var i=1;
var sum=0;
while(i<=100){
    sum+=i;
}

异常处理

try {
    //这段代码从上往下运行,其中任何一个语句抛出异常该代码块就结束运行
}
catch (e) {
    // 如果try代码块中抛出了异常,catch代码块中的代码就会被执行。
    //e是一个局部变量,用来指向Error对象或者其他抛出的对象
}
finally {
     //无论try中代码是否有异常抛出(甚至是try代码块中有return语句),finally代码块中始终会被执行。
}

注:

  • 主动抛出异常 throw Error(‘xxxx’)  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值