javascript基础知识之流程控制语句(二)

运算符

运算符也被称为操作符,用来实现赋值,比较及执行算数运算等功能的符号

javascript常见的运算符

  • 算数运算符
  • 比较运算符
  • 逻辑运算符
  • 赋值运算符
  • 递增与递减运算符

算数运算符

算数使用的符号 比较两个变量或值的算术运算

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>算数运算符</title>
</head>

<body>

</body>
<script>
    console.log(1 + 2);
    console.log(5 - 4);
    console.log(8 * 4);
    console.log(8 / 3);

    // js运算中 浮点数的精度会产生细微的差距  不能直接比较两个浮点数.
    console.log(0.7 * 100);
    console.log(0.1 + 0.2);
    console.log(0.1 + 0.2 == 0.3);
</script>

</html>

在这里插入图片描述

注意事项

  • javascript中 不能直接来比较两个浮点数
  • javascript的运算顺序,先算乘除,后算加减,有小括号先算小括号

如何判断一个数是否可以被整除?

余数为0 说明这个数可以被整除

表达式

由数字 运算符 标识符组成的式子便叫做表达式

返回值

表达式最终都有返回一个结果,这个结果便叫做返回值

     var  num = 1 + 1 
上述代码中,这样的式子便叫做表达式,右边的公式计算完毕后有一个返回值,这个返回值赋值给左边的num

一元运算符

一元运算符分为前置型与后置型,主要是为了实现变量的自增与自减操作,必须与变量搭配使用。

前置型运算符

前置型运算符 先自增(自减) 再进行运算

前置自增运算符:先自增,再进行运算


<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>前置自增运算符</title>
</head>

<body>

</body>
<script>
    var num = 5;
    ++num;
    console.log('num的值:', num);

    var num2 = ++num + 5;
    console.log('num2的值:', num2);
</script>

</html>

在这里插入图片描述

前置自减运算符:先自减,再进行运算

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>前置自减运算符</title>
</head>

<body>

</body>
<script>
    var num = 20;
    --num;
    console.log('num的值:', num);

    var num2 = --num + 20;
    console.log('num2的值:', num2);
</script>

</html>

在这里插入图片描述

后置型运算符

先原值运算,再进行自增或自减操作

后置自增运算符:先原值运算,再进行自增

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>后置自增运算符</title>
</head>

<body>

</body>
<script>
    var num = 20;
    num++;
    console.log('num的值:', num);

    var num2 = num++ + 5;
    console.log('num2的值:', num2);

    var num3 = num + 2;
    console.log('num3的值', num3);
</script>

</html>


在这里插入图片描述

后置自减运算符:先原值计算,再进行自减


<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>后置自减运算符</title>
</head>

<body>

</body>
<script>
    var num = 6;
    num--;
    console.log('num的值', num);

    var num2 = num-- - 3;
    console.log('num2的值', num2);

    var num3 = num-- + 1;
    console.log('num3的值', num3);
</script>

</html>

在这里插入图片描述

一元运算符之综合练习

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>一元运算符之综合练习</title>
</head>

<body>

</body>
<script>
    // 第一题
    var a = 5;
    ++a;
    var b = ++a + 6;
    console.log('b的值:', b); //13


    // 第二题
    var c = 10;
    c++;
    var d = c++ + 2;
    console.log('d的值:', d); //13

    // 第三题
    var e = 10;
    var f = e++ + ++e;
    console.log('f的值:',f);//22
</script>

</html>


在这里插入图片描述

一元运算符之总结
  • 一元运算符是为了简化代码操作 主要是为了使变量实现自增或自减操作
  • 单独使用时没有任何区别
  • 前置自增运算符和前置自减运算符:先自增(自减),再运算
  • 后置自增运算符和后置自减运算符:先原值运算,再自增(自减)
  • 实际开发过程中,使用后置运算符较多

比较运算符

比较运算符(关系运算符)主要是为了比较两个数据所使用的运算符,会返回一个布尔值,作为比较运算的结果

在这里插入图片描述
在这里插入图片描述


<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>比较运算符</title>
</head>

<body>

</body>
<script>
    console.log(5 > 3);
    console.log(5 < 3);
    console.log(8 >= 5);
    console.log(6 <= 3);
    console.log(8 == '8');
    console.log(8 != 5);
    console.log(8 !== '8');
    console.log(8 === '8');
</script>

</html>


在这里插入图片描述

逻辑运算符

逻辑运算符是用来进行布尔值运算的运算符,其结果也是布尔值,在实际开发中,多用于多个条件的判断


<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>逻辑运算符</title>
</head>

<body>

</body>
<script>
    console.log(5 > 3 && 3 < 5);
    console.log(5 > 3 && 3 > 5);

    console.log(5 > 3 || 3 < 5);
    console.log(7 > 8 || 5 > 3);

    console.log(!true);
    console.log(!false);
</script>

</html>



在这里插入图片描述

逻辑运算符之总结

  • &&:两边都为true,其结果才会为true,两边有一个false,其结果也为false
  • || :两边都为false,其结果才会为false.两边有一个true,其结果也为true;
  • !:取反 !true的结果为false

逻辑运算符之总结


  <!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>逻辑运算符之综合案例</title>
</head>

<body>

</body>
<script>
    var num = 7;
    var str = '我爱你,亲爱的中国';
    console.log(num > 5 && num <= str.length); //true
    console.log(num < 5 && num <= str.length); //false


    console.log(str.length > 11); //false;
    console.log(!(num > 5 || str.length == num)); //false
</script>

</html>


在这里插入图片描述

短路效果

当有多个表达式(值)的时候,左边的表达式值能确定的情况下,将不再进行右边表达式的值运算。

逻辑中断之逻辑与

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>逻辑中断之逻辑与</title>
</head>

<body>

</body>
<script>
    console.log(123 && 456);
    console.log(0 && 456);
    console.log(undefined && 456);
</script>

</html>

在这里插入图片描述

逻辑中断之逻辑或

语法:表达式1 || 表达式2

  • 表达式1为真的话 则返回表达式1的值
  • 表达式1如果为假的话,返回表达式2的值 (可以跟逻辑与相比较记忆)
	<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>逻辑中断之逻辑或</title>
</head>

<body>

</body>
<script>
    console.log(123 || 456);
    console.log(0 || 456);
    console.log(undefined || 456);
</script>

</html>

在这里插入图片描述

赋值运算符

将数据赋值给变量的运算符,简称赋值运算符

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>赋值运算符</title>
</head>

<body>

</body>
<script>
    var num = 2;
    num += 2;
    console.log(num);

    var num2 = 4;
    num2 -= 3;
    console.log(num2);

    var num3 = 20;
    num3 %= 4;
    console.log(num3);
</script>

</html>

在这里插入图片描述

运算符的优先级

在这里插入图片描述

  • 一元运算符中的!的优先级很高
  • 逻辑与比逻辑或等级要高
运算符顺序之练习一
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>运算符顺序之练习一</title>
</head>

<body>

</body>
<script>
    console.log(4 >= 6 || '人' != '阿凡达' && !(12 * 2 == 144) && true)
        /* 解析:4 >= 6 || '人' != '阿凡达' && true && true 
               4 >= 6 || '人' != '阿凡达' && true 
               false || true && true
               false ||true
               true   
        */

    var num = 10;
    console.log(5 == num / 2 && (2 + 2 * num).toString() === '22')
        /* 解析: 5 == num / 2 && (2 + 2 * num).toString() === '22'
                5 == num / 2 && (2 + 2 * num).toString() === '22'
                5 == num / 2 && true
                true && true
                true
    
        */
</script>

</html>

在这里插入图片描述

运算符顺序之练习二

 <!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>运算符顺序之练习二</title>
</head>

<body>

</body>
<script>
    var a = 3 > 5 && 2 < 7 && 3 == 4;
    console.log(a)

    /* 解析: a= false && true && false
             a = flase*/


    var b = 3 <= 4 || 3 > 1 || 3 != 2
    console.log(b);
    /* 解析:b = 3 <= 4 || 3 > 1 || true
            b = true ||true ||true
            b =true */

    var c = 2 === "2"
    console.log(c);
    /* 解析:c = false */


    var d = !c || b && a;
    console.log(d)
        /* 解析: d = true || true && false
                 d = true ||false
                 d = true*/
</script>

</html>


在这里插入图片描述

流程控制语句

简单而言,控制代码按照不同的结构顺序去执行

流程控制语句:顺序结构 分支结构 循环结构

流程控制语句之顺序结构

在javascript中,代码的执行顺序是从上往下依次执行的,这种执行顺序便被称为顺序结构

分支结构

在代码从上往下的执行过程中,按照不同的条件,执行不同路径上的代码,从而得到不同的结果。

在这里插入图片描述

javascript中提供两种分支结构

  • if语句
  • switch语句

if语句

语法

if(条件表达式) {
	//执行的语句
	}

注意:条件表达式若为真,则执行{}里面的语句,条件表达式若为假,则执行if后面的代码
在这里插入图片描述

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>if语句</title>
</head>

<body>

</body>
<script>
    if (true) {
        console.log('条件表达式若为真 则执行语句');
    }

</script>

</html>

在这里插入图片描述

if语句之网吧案例

  • 弹出输入框 用户输入自己的年龄 如果大于18岁 则提示可以去网吧
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>if语句之网吧案例</title>
</head>

<body>

</body>
<script>
    var user = prompt('请输入年龄');
    if (user >= 18) {
        alert('恭喜你 可以去网吧冲浪')
    }
</script>

</html>

在这里插入图片描述

if双分支语句

在这里插入图片描述
语法

 if(条件表达式) {
        //执行的语句
    }else {
        //执行的语句
    }

注意事项

  • if与else里面的语句只能执行一个
  • else后面没有{}
if双分支语句之网吧案例
 要求:弹出一个输入框,用户输入自己的年龄,如果大于等于18岁,提示可以进入网吧,如果小于18,则提示用户不能进入网吧

思路如下

  • 1.弹出输入框,把用户输入的值保存为变量
  • 2.利用if双分支语句进行判断,根据用户的年龄而执行不同的语句。
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>if双分支之网吧案例</title>
</head>

<body>

</body>
<script>
    var age = parseFloat(prompt('请输入年龄'));
    if (age >= 18) {
        alert('恭喜你 可以上网')
    } else {
        alert('对不起  请你回家')
    }
</script>

</html>

在这里插入图片描述

if双分支语句之判断闰年与平年

提示:能被4整除且不能整除100的为闰年(如2004年就是闰年,1901年不是闰年)或者能够被 400 整除的就是闰年

思路如下

  • 1.用户输入年份,把用户输入的值以变量的形式保存起来
  • 2.利用if语句,根据不同的条件而判断闰年及平年

  

在这里插入图片描述

if多分支语句

场景:适用于多重条件的判断


if(条件表达式1) {
    语句1;
}else if(条件表达式2) {
    语句2;
}else if(条件表达式3) {
    语句3;
    .....
}else {
    //以上代码不成立执行此处代码
}

注意事项

  • 根据不同的条件,而执行不同的代码路径,并最终得到结果,是个多选一的过程
  • else if后面加条件表达式,而else后面没有条件表达式
  • 如果if else if中的条件表达式都不符合 则执行else里面的语句
if多分支语句之成绩案例

在这里插入图片描述


<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>if多分支语句之成绩案例</title>
</head>

<body>

</body>
<script>
    var score = parseInt(prompt('请输入成绩'));

    if (score >= 90) {
        alert('A')
    } else if (score >= 80) {
        alert('B')
    } else if (score >= 70) {
        alert('C')
    } else if (score >= 60) {
        alert('D')
    } else {
        alert('E')
    }
</script>

</html>

在这里插入图片描述

三元表达式

三元表达式可以做一些简单的条件判断,由三元运算符组成的式子叫做三元表达式

语法如下

条件表达式?表达式1:表达式2 条件表达式若为真,则返回表达式1的值,条件表达式为假 则返回表达式2的值

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>三元表达式</title>
</head>

<body>

</body>
<script>
    var num = 10;
    var result = num > 5 ? '正确' : '不正确';
    console.log(result);
</script>

</html>
   
   

在这里插入图片描述

三元表达式之补0

必须使用三元表达式

思路如下

  • 1.弹出一个输入框,用户输入0~59之间的数字
  • 2.0~9之间的数字前面补0,大于10的数字不做任何操作
  • 3.用变量接受一个返回值,输出(程序内部处理)

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>三元表达式之补0</title>
</head>

<body>

</body>
<script>
    var user = parseInt(prompt('请输入数字'))
    var result = user < 10 ? '0' + user : user;
    alert(result)
</script>

</html>


在这里插入图片描述

switch语句

switch语句属于多分支语句,执行不同的条件语句得到不同的结果,是多选一的过程。

注意事项

  • if多分支语句只要用于判断,而switch语句主要适用于特定值匹配
  • switch:开关。 case:选项。
  • switch语句条件表达式的值与case后面的值且是全等的关系,则执行case后面的语句
  • 匹配不上值,则执行default后面的语句
  • 不要忘记写break,否则会一直执行下去。
switch语句之水果案例

要求:用户输入自己需要的水果,则屏幕弹出水果的价格是多少钱一斤

思路如下

  • 弹出一个输入框,用户需要自己的想要的水果
  • 把用户输入的值用变量的形式保存起来,当switch后面的条件表达式的值匹配上case后面的值,则弹出相对应的水果价格
  • 不要忘记break,否则程序会一直执行下去。


<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>switch多分支之水果案例</title>
</head>

<body>

</body>
<script>
    var fruit = prompt('请输入水果');

    switch (fruit) {
        case '苹果':
            alert('10元/斤');
            break;
        case '香蕉':
            alert('5元/斤');
            break;
        case '榴莲':
            alert('50元/斤');
            break;
        case '橘子':
            alert('15元/斤');
            break;
        default:
            alert('对不起 暂时没有此水果')

    }
</script>

</html>

在这里插入图片描述

switch语句和if else if语句的区别

  • switch用于特定值匹配,而if else语句用于条件判断
  • switch确定值后直接执行到程序内部,而if语句还要依次判断(执行效率稍低)
  • 分支比较少的情况下,用if else效率较高
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值