流程控制

2018-09-20  本文已影响0人  致自己_cb38

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 结构

if(a==1){
    if(b==1){

    }else{

    }
}else{
    
}
转化成:
if(a==1){
    
}
if(a!=1){
    
}
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 结构:

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>

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

<!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>
上一篇下一篇

猜你喜欢

热点阅读