美文网首页
流程控制

流程控制

作者: 致自己_cb38 | 来源:发表于2018-09-20 20:35 被阅读0次

    1. innerHTML

    获取标签内部的所有内容,可以获取出标签里面的标签

    2. innerText

    获取标签里面的内容,不获取标签。
    eg:

    <div><span>123</span></div>
    innerHTML <span>123</span>
    innerText 123
    

    案例:计算器

    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>计算器</title>
        <style>
            #compute{
                width:540px;
                height:270px;
                border:1px solid #efefef;
                margin:0 auto;
            }
            input{
                width:505px;
                height:55px;
                border:none;
                margin-left:17px;
                text-align: right;
                outline:none;/*
    (轮廓)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。*/
                font-size:20px;
                line-height: 25px;
            }
            ul{
                width:505px;
                padding:0;
                height:200px;
                list-style: none;
                margin:0;
                margin-left:17px;
            }
            ul li{
                display: block;
                float: left;
                width:123px;
                height:35px;
                border:1px solid #ddd;
                text-align: center;
                line-height: 35px;
            }
        </style>
    </head>
    <body>
    <div id="compute">
        <input type="text" readonly>
        <ul>
            <li>(</li>
            <li>)</li>
            <li>%</li>
            <li>C</li>
            <li>7</li>
            <li>8</li>
            <li>9</li>
            <li>/</li>
            <li>4</li>
            <li>5</li>
            <li>6</li>
            <li>*</li>
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>-</li>
            <li>0</li>
            <li>.</li>
            <li>=</li>
            <li>+</li>
        </ul>
    </div>
    <script>
    window.onload = function(){
        var type = false;
        var oInput = document.getElementsByTagName('input')[0];
        var oLi = document.getElementsByTagName('li');
        for(var i=0;i<oLi.length;i++){
          oLi[i].onclick = function(){
              if(type){
                  oInput.value = '';
                  type = false;
              }// 如果type=true,点击oLi[i]执行以上内容
              var va = this.innerText;
              oInput.value = oInput.value+va;
             // innerText获取标签里的内容(不包括标签)
            // input里的内容和点击的li里的内容进行拼接,类似于:i=i+1
          };
        }
        oLi[18].onclick = function(){
            // 算出的结果 eval把一个字符串当作表达式进行计算
            var jieguo = eval(oInput.value);
            oInput.value = oInput.value + "="+jieguo;
            type = true;
        };
        oLi[3].onclick = function(){
            oInput.value = '';
        };
    };
    </script>
    </body>
    </html>
    

    3. eval 能够把一个字符串当做表达式进行运算。

    4. 程序的三大流程

    顺序结构
    循环结构
    选择结构(分支结构)
    

    5. 流程图

    • 开始和结束:圆角矩形。程序总是从开始作为入口,从结束作为出口。
    • 过程:每一个步骤都是一个过程,过程是使用矩形表示的。过程只能有一个入口一个出口。
    • 判断:里面是一个条件判断,用菱形表示,一个入口,多个出口。

    6. if 结构

    • 6.1单句if

      • if(判断条件)一句代码;
      • 如果符合if条件的结果语句只有一条,那么if后面的大括号可以省略。虽然这个很简洁,但是不建议这样使用,也就是说即使只有一句代码也要加上大括号。
        等价于:
        if(判断条件){
        一句代码;
        }
    • 6.2一般if
      if(判断条件){
      一组语句;
      }

    • 6.3 双分支if
      if(判断条件){
      一组语句;
      }else{
      一组语句;
      }
      这个语句相对来说比较麻烦,如果语句比较少的时候,可以使用。如果语句比较多,那么就转化为一般if结构。
      eg:

    if(a==1){
        if(b==1){
    
        }else{
    
        }
    }else{
        
    }
    转化成:
    if(a==1){
        
    }
    if(a!=1){
        
    }
    
    • 6.4多分支结构if
    if(判断){
        
    }else if(判断){
        
    }else if(判断){
        
    }else{
        
    }
    

    案例:奖学金

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <script>
    window.onload = function(){
        var num = 102;
        //>=90  5000
        //<90  >=80  2000
        //<80  >=60  300
        //<60  >0    -500
        //<0
        if(num<0 || num>100){
            alert('分数错误');
            return false;
        }
        if(num>=90){
            alert('5000');
        }else if(num>=80){
            alert(2000);
        }else if(num>=60){
            alert(300);
        }else{
            alert(-500);
        }
    }
        </script>
    </body>
    </html>
    

    7. switch 结构:

    • 不确定具体值的用if结构。确定具体值的,并且值个数是有限个(数量不能太多)的时候用switch。
    switch(判断的值){
        case 第一个值:
            语句;
            break;
        case 第二个值:
            语句;
            break;
        。。。
        default:
            语句
            break;
    }
    

    eg:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
    <script>
    var wuqi = 3;  // 1 普通  2 神级 3传说 4史诗
    switch(wuqi){
        case 1:
            console.log('这是普通武器,杀猪刀');
            break;
        case 2:
            console.log('这是神级武器,屠龙刀');
            break;
        case 3:
            console.log('这是传说武器,打神鞭');
            break;
        case 4:
            console.log('这是史诗武器,就是厉害刀');
            break;
        default:
            console.log('这不是规定的武器,不许用');
            break;
    }
    </script>
    </body>
    </html>
    
    • break:为了跳出一个代码块,如果没有break,那么switch case 后面代码会继续往下执行。下面的case判断不起作用。
      注意:switch参与判断的值与case后面的值是全等判断。

    8.for循环结构

    for(初始化;判断条件;改变循环判断值){
        
    }
    
    for(){
        //第二个循环的变量注意变化。
        for(){
    
        }
    }
    

    eg:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
    <script>
    
    for(var i=0;i<10;i++){
        for(var j=0;j<11;j++){
            console.log(1);
        }
    }
    // 110个1
    // i循环10次,j循环11次,10*11=110
    </script>
    </body>
    </html>
    

    9.while循环

    初始化
    while(判断条件){
        
    
        改变循环条件
    }
    for(var i=0;i<100;i++){
        
    }
    //等价于:
    var i=0;
    while(i<100){
        
        i++;
    }
    

    10.do---while

    do{
        
    }while();
    

    eg:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>
        </title>
    </head>
    <body>
    <script>
        var i =13;
        do{
            console.log(i);
            i++;
        }while(i<12); // i=13
    </script>
    </body>
    </html>
    

    区别:while循环先判断,在执行,不符合条件的一次都不执行。do---while先执行,然后在判断,不符合条件至少会执行一次。

    10.break 与continue

    • break 跳出代码块,结束循环。
    • continue 继续执行,但是结束本次循环。
      eg:
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <script>
            for(var i=0;i<10;i++){
                console.log(i) ;
                if(i==5){
                    continue;
                }
                console.log(i) ;
            }
            // 0 0 2 2 3 3 4 4 5 6 6 ……每个数字打印2次,5只打印一次
        </script>
    </body>
    </html>
    

    11.label语法:控制break与continue。

    一般不使用,但是也有可能遇到。

    label_name:
    for(){
        break name;
        continue name;
    }
    

    eg:

    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
    <script>
        father:
        for(var i=0;i<5;i++){
            for(var k=0;k<6;k++){
                console.log(i+''+k);
                continue father;
            }
        }
    // 00 10 20 30 40
    </script>
    </body>
    </html>
    

    相关文章

      网友评论

          本文标题:流程控制

          本文链接:https://www.haomeiwen.com/subject/moonnftx.html