小白学js第四天

流程控制

目录

  • 表达式和语句
  • 流程控制的三大结构
  • debug

流程控制脑图请戳?[http://naotu.baidu.com/file/30ab2cfa33a855fb631c04f849b4a2e3?token=d497f04ccc07ad7b]

1 表达式和语句

1.1 表达式

  • 可以产生一个值,有可能是个运算、函数、字面量
  • 可以放在任何需要值的地方

1.2 语句

  • 可以理解为一个行为,用;结束一个语句

2 流程控制的三大结构

2.1 顺序结构

  • 由上到下依次执行
  • 程序默认都是由上到下依次执行

2.2 分支结构

根据不同的情况执行相应的代码

2.2.1 if 语句
//语法 

//第一种
 if(条件表达式) {
     执行语句
 }

//第二种:
 if(条件表达式) {
     语句1   //如果条件表达式为true,则执行语句1
 } else {
     语句2   //如果条件表达式为false,则执行语句2
 }

 // 第三种
 if(条件表达式){ //如果条件表达式为true,则执行语句1,//如果条件表达式为false,则判断else if内的条件表达式是否成立,成立则执行相应花括号内的代码,否则一直直接跳到下一个else if,反复判断,直到执行到else结束
     语句1
 } else if (条件表达式){
     语句2
 }else if (条件表达式){
    语句 3
 }else if (条件表达式){
     语句4
 }else if (条件表达式){
     语句5
 }else if(条件表达式) {
     语句6
 }else {
     语句7
 }

 // 案例
// 判断一个数是偶数还是奇数
        //
            // var num1 = 5;
            // if( num1 % 2 === 0) {
            //  console.log('num1是偶数');
            // }else {
            //  console.log('num1是奇数');
            // }

        // 分数转换,把百分制转换成ABCDE   <60  E  60-70 D  70-80 C  80-90 B  90 - 100 A
        var score = 55;
        if (score >= 90){
            console.log('A');
        }else if(score >= 80){
            console.log('B');
        }else if(score >= 70){
            console.log('c');
        }else if(score >= 60){
            console.log('D');
        }else {
            console.log('E');
        }
2.2.2 三元运算符
  • 表达式1 ? 表达式2 : 表达式3
  • 如果表达式1成立则返回表达式2的值否则返回表达式3的值
  • 是对if……else语句的一种简化写法
//案例
//是否年满18岁
        var age = 18;
        console.log(age >= 18 ? '成年' : '未成年' );

// 从两个数中找最大值
         var num1 = 5 ;
         var num2 = 3;
         console.log(num1 > num2 ? num1 : num2);
2.2.3 swith 语句

语法格式


        switch (expression) {
            case 常量1:
                 语句;
                 break;
            case 常量2:
                 语句;
                 break;
            case 常量3:
                    语句;
                    break;
                …
            case 常量n:
                 语句;
                    break;
            default:
                    语句;
                    break;
                }
  • break可以省略,如果省略,代码会继续执行下一个case
  • switch 语句在比较值时使用的是全等操作符, 因此不会发生类型转换(例如,字符串‘10‘ 不等于数值 10)

案例
```
//显示星期几
var day = 1;
switch(day) {
case 1 :
console.log("星期一");
break;
case 2 :
console.log("星期二");
break;
case 3 :
console.log("星期三");
break;
case 4 :
console.log("星期四");
break;
case 5 :
console.log("星期五");
break;
case 6 :
console.log("星期六");
break;
default:
console.log("星期日");
}

            //素质教育(把分数变成ABCDE)千万不要写100个case哟

    var score = 100;
    var num = parseInt(score / 10);
    switch(num) {
        case 10 :
        case 9 :
            console.log('A');
            break;
        case 8 :
            console.log('B');
            break;
        case 7 :
            console.log('C');
            break;
        case 6 :
            console.log('D');
            break;
        default :
            console.log('E');
    }
#### 2.4 Boolean的隐式转换结构
- 流程控制语句会把后面的值隐式转换成布尔类型
- 转换为true   非空字符串  非0数字  true 任何对象
- 转换成false  空字符串  0  false  null  undefined

案例

var a = !!‘123‘; // true

#### 2.3 循环结构
- 重复做一件事
- 注意事项:避免死循环

##### 2.3.1 while 循环

语法
    // 当循环条件为true时,执行循环体,
    // 当循环条件为false时,结束循环。
    while(循环条件) {
        //循环体
    }
案例
    //打印100以内的奇数

    var i = 0;
    while(i < 101){
        if(i % 2 !== 0) {
            console.log(i);
        }
        i++;
    }
    //打印100以内的奇数的和
    //
    //
    var oddNum = 1;
    var sum = 0;
    while(oddNum < 101){
        if( oddNum % 2 !== 0){
            sum += oddNum;
        }
        oddNum++;
    }
    console.log(sum);
##### 2.3.2 do-while 循环
>do..while循环和while循环非常像,二者经常可以相互替代,但是do..while的特点是不管条件成不成立,都会执行一次。

语法

do {
// 循环体;
} while (循环条件);

案例
//求100以内所有3的倍数的和
    var num = 1;
    var sum = 0;
    do {
        if(num % 3 === 0){
            sum += num;
        }
        num++;
    }while(num < 101);
    console.log(sum);

//使用do-while循环:输出询问“我爱你,嫁给我吧?”,选择“你喜欢我吗?(y/n):",如果输入为y则打印”我们形影不离“,若输入为n,则继续询问" 

 do {
     var msg = prompt('你爱我吗?','请输入yes or no');
 } while(msg !== 'yes');
 console.log('萨拉黑哟');
</script>
//prompt('参数1', '参数2'); 参数1是提示的内容,参数2是输入文本框内提示的内容。
##### 2.3.3 for循环

和whil以及 do-while的区别
- 一般在循环次数确定的时候使用
- while和do-while一半在循环次数不确定的时候使用

语法:

// for循环的表达式之间用的是;号分隔的,千万不要写成,
for (初始化表达式1; 判断表达式2; 自增表达式3) {
// 循环体4
}

执行顺序:1243  ----  243   -----243(直到循环条件变成false)
1. 初始化表达式
2. 判断表达式
3. 自增表达式
4. 循环体

案例

//打印1-100之间所有数
//
for(var i = 0; i <= 100; i++){
console.log(i);
}
//求1-100之间所有数的和
//
//
var sum = 0;
for( var i = 1; i <= 100; i++){
sum += i;
}
console.log(sum);
//同时求1-100之间所有偶数和奇数的和
var oddSum = 0;
var evenSum = 0;
for( var i = 1; i <= 100; i++){
if(i % 2 == 0){
evenSum += i;
}else {
oddSum += i;
}
}
console.log(evenSum);
console.log(oddSum);
// 打印正方形‘
var str = ‘‘;
//控制行的输出
for(var i = 0; i < 10; i++){
//控制一行输出几个
for(var j = 0; j < 10; j++){
str += ‘* ‘;
}
str += ‘\n‘;
}
console.log(str);

// 打印直角三角形
var str = ‘‘;
//控制行的输出
for(var i = 0; i < 10; i++){
//控制一行输出几个
for(var j = i; j < 10; j++ ){
str += ‘* ‘;
}
// 换行
str += ‘\n‘;
}
console.log(str);
// // 打印9*9乘法表

    var str = '';
    for( var i = 1; i <= 9; i++){
        for(var j = i; j <= 9; j++){
            str += i + '*' + j + '=' + i * j + '\t';
        }
        str += '\n';
    }
    console.log(str);
##### 2.3.4 continue 和 break
> break:立即跳出整个循环,即循环结束,开始执行循环后面的内容(直接跳到最外层大括号)
>
> continue:立即跳出当前循环,继续下一次循环(跳到i++的地方)
案例
   // 求整数1~ 100 的累加值, 但要求碰到个位为3的数则停止累加
    var sum = 0;
    for (var i = 0; i <= 100; i++) {
        if (i % 10 !== 3) {
            sum += i;
        } else {
            break;
        }
    }
    console.log(sum);
//求整数1~ 100 的累加值, 但要求跳过所有个位为3的数
    var sum = 0;
    for (var i = 0; i <= 100; i++) {
        if (i % 10 === 3) {
            continue;
        }
        sum += i;
    }
    console.log(sum);

```

debug

  • 过去调试JavaScript的方式

    • alert()
    • console.log()
  • 断点调试

断点调试是指自己在程序的某一行设置一个断点,调试时,程序运行到这一行就会停住,然后你可以一步一步往下调试,调试过程中可以看各个变量当前的值,出错的话,调试到出错的代码行即显示错误,停下。

  • 调试步骤
浏览器中按F12-->sources-->找到需要调试的文件-->在程序的某一行设置断点--> f5 --> f11
  • 调试中的相关操作
Watch: 监视,通过watch可以监视变量的值的变化,非常的常用。
F10: 程序单步执行,让程序一行一行的执行,这个时候,观察watch中变量的值的变化。
F8:跳到下一个断点处,如果后面没有断点了,则程序执行结束。

tips: 监视变量,不要监视表达式,因为监视了表达式,那么这个表达式也会执行。

原文地址:https://www.cnblogs.com/1020-jj/p/10848838.html

时间: 2024-10-14 06:30:18

小白学js第四天的相关文章

菜鸟学JS(四)——javascript为按钮注册回车事件(设置默认按钮)

不得不说,在JS方面,自己真的是个不折不扣的菜鸟.对于JS以及一些JS框架如JQuery等JS框架,自己也只是处在简单应用的阶段,当然自己也在不断的学习当中,希望将来能跟大家分享更多JS方面的心得.今天先来点开胃的,说一下如何设置一个默认按钮,就是不管焦点在不在按钮上,只要按下回车,就等于触发了按钮的单击事件. 代码非常简单,要完成这个功能,只需几行代码: //为keyListener方法注册按键事件 document.onkeydown=keyListener; function keyLis

小白学js第五天之数组

目录 数组的概念 数组的定义 数组字面量 获取数组中的元素 遍历数组 数组中新增的元素 数组脑图请戳?[http://naotu.baidu.com/file/dbefa4615b5302ad1ccd912ed0b362b3?token=5d6b06470c89e65c] 数组的概念 数组是将许多元素(通常是同一类型)按照一定的顺序排放到一个集合中 数组的定义 数组是个有序列表 可以存放任意数据 数组的长度可以动态的调整 数组字面量 通过数组字面量[]创建数组 //创建一个空数组 var arr

小白学js第六天之代码规范,作用域以及预解析

目录 代码规范 命名规范 变量规范 注释规范 空格规范 换行规范 作用域 全局变量 局部变量 块级作用域 作用域链 预解析 什么是预解析 变量提升 此篇木有脑图,嘻嘻 代码规范 命名规范 变量.函数的命名必须要有意义 变量一般用名词 函数一般用动词 变量规范 操作符前后要有空格 var name = 'zs'; 注释规范 // 这里是注释 空格规范 if (true) { } for(var i = 0; i < n; i++ ) { } 换行规范 var arr = [1, 2, 3, 4];

小白学react之网页获取微信用户信息

通过上一篇<小白学react之EJS模版实战>我们学习了如何通过EJS模版生成我们高定制化的index.html文件. 本篇我们将会继续延续我们的alt-tutorial项目的实战计划,去获取微信扫码用户的信息,并将头像显示在我们页面的右上角上. 最终实战效果将如下所示. 首先根据我们的网站url生成二维码,比如我们可以通过浏览器的FeHelper来生成: 然后用户通过微信扫码: 最后用户确定授权后获取到用户的基本信息,并将头像显示在右上角: 1. 内网穿透准备 我们获取微信用户信息的过程中,

【原创】小白学jquery Mobile《构建跨平台APP:jQuery Mobile移动应用实战》连载五(给按钮加图标)

在范例5-4所使用的导航栏中,已经为按钮加入了图标的样式,但是当时并没有介绍按钮的图标究竟是怎么一回事.下面截取范例5-4中导航栏部分的代码: 1 <divdata-role="footer"> 2 <div data-role="navbar"data-grid="c"> 3 <ul> 4 <li><a id="chat" href="#"data-i

小白学 Python 爬虫(12):urllib 基础使用(二)

人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Linux基础入门 小白学 Python 爬虫(4):前置准备(三)Docker基础入门 小白学 Python 爬虫(5):前置准备(四)数据库基础 小白学 Python 爬虫(6):前置准备(五)爬虫框架的安装 小白学 Python 爬虫(7):HTTP 基础 小白学 Python 爬虫(8):网页基

小白学 Python 爬虫(15):urllib 基础使用(五)

人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Linux基础入门 小白学 Python 爬虫(4):前置准备(三)Docker基础入门 小白学 Python 爬虫(5):前置准备(四)数据库基础 小白学 Python 爬虫(6):前置准备(五)爬虫框架的安装 小白学 Python 爬虫(7):HTTP 基础 小白学 Python 爬虫(8):网页基

小白学 Python 爬虫(17):Requests 基础使用

人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Linux基础入门 小白学 Python 爬虫(4):前置准备(三)Docker基础入门 小白学 Python 爬虫(5):前置准备(四)数据库基础 小白学 Python 爬虫(6):前置准备(五)爬虫框架的安装 小白学 Python 爬虫(7):HTTP 基础 小白学 Python 爬虫(8):网页基

小白学 Python 爬虫(18):Requests 进阶操作

人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Linux基础入门 小白学 Python 爬虫(4):前置准备(三)Docker基础入门 小白学 Python 爬虫(5):前置准备(四)数据库基础 小白学 Python 爬虫(6):前置准备(五)爬虫框架的安装 小白学 Python 爬虫(7):HTTP 基础 小白学 Python 爬虫(8):网页基