Javascript基础:运算符与流程控制详解

目录

  • 1. 运算符(操作符)
    • 1.1 算数运算符
    • 1.2 递增和递减运算符
    • 1.3 比较运算符
    • 1.4 逻辑运算符
    • 1.5 赋值运算符
    • 1.6 运算符优先级
  • 2. 流程控制
    • 2.1 if 的语法结构
    • 2.2 if else双分支语句
    • 2.3 if else if语句(多选1)
    • 2.4 三元表达式
    • 2.5 switch分支流程控制
  • 总结

    1. 运算符(操作符) 「运算符」是用于实现赋值、比较和执行算数运算等功能的符号。常用运算符分类如下
    • 算数运算符
    • 递增和递减运算符
    • 比较运算符
    • 逻辑运算符
    • 赋值运算符

    1.1 算数运算符
    运算符 描述 案例
    + 10+20=30
    - 10-20=-10
    * 10*20=200
    / 10/20=0.5
    % 取余(取模) 返回除法的余数9%2=1
    //alert(1 + 1); console.log(1 + 1); //运算符的左右两侧都要敲空格//alert(1 - 1); //0//alert(1 * 1); //1//alert(1 / 1); //1

    1. % 取余(取模)
    //alert(4 % 2); //0 //alert(5 % 3); //2//alert(3 % 5); //3注意!!!!!!!!!!

    2.浮点数 算数运算里面会有问题
    var result = 0.1 + 0.2; // 结果不是 0.3,而是:0.30000000000000004console.log(0.07 * 100); // 结果不是 7,而是:7.000000000000001

    浮点数值的最高精度是17位小数,但是在进行算数运算时其精确度远远不如整数,所以不要直接判断两个浮点数是否相等!
    3. 我们不能直接拿浮点数来进行相比较 是否相等
    var num = 0.1 + 0.2; alert(num == 0.3); //false要转化为2进制,精确度会有误差

    • 表达式与返回值
      • 表达式:由数字、运算符和变量组成的式子。
      • 返回值:每一个表达式经过相应的运算之后,会有一个最终结果,称为表达式的返回值
    // 是由数字、运算符、变量等组成的式子 我们称为表达式1+1 // alert(1 + 1); //2 就是返回值//写法//1 + 1=2// 在我们程序里面2 = 1 + 1 把我们右边表达式计算完毕把返回值给左边var num = 1 + 1; // alert(num); //2


    1.2 递增和递减运算符
    如果需要反复给数字变量添加或减去1,可以使用递增( + + )和递减( - - )运算符来完成。
    在javascript 中,递增( + + )和递减( - - )运算符既可以放在变量前面,也可以放在变量后面。放在变量前面时,称为前置递增( 递减 )运算符,放在后面是后置递增( 递减 )运算符
    注意:递增和递减运算符必须配合变量使用。
    前置递增运算符使用口诀:先自加,后返回值

    前置递增运算符使用口诀:先返回值原值 后自加1

    案例:

    【Javascript基础:运算符与流程控制详解】
    1.3 比较运算符
    比较运算符是两个数据进行比较时所使用的运算符,比较运算符,会返回一个布尔值(true/false)作为比较运算的结果。
    运算符 描述 案例
    + 10+20=30
    - 10-20=-10
    * 10*20=200
    / 10/20=0.5
    % 取余(取模) 返回除法的余数9%2=1

    符号 作用 用法
    = 赋值 把右边给左边
    == 判断 判断两边值是否相等(注意此时有隐式转换)
    === 全等 判断两边的值和数据类型是否完全相等

    1.4 逻辑运算符
    概念:逻辑运算符是用来进行布尔值运算的运算符,其返回值也是布尔值。后面开发中经常用于多个条件的判断

    练习:

    短路运算(逻辑中断):(js API)
    当有多个表达式(值)时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值;
    3. 逻辑与短路运算如果表达式1 结果为真 则返回表达式2如果表达式1为假 那么返回表达式1alert(123 && 456); //456除了0之外,所有的数字都为真alert(0 && 456); // 0alert(0 && 1 + 2 && 456 * 56789); // 0alert('' && 1 + 2 && 456 * 56789); // ''如果有空的或者否定的为假 其余是真的:0''null undefinedNaN

    4. 逻辑或短路运算如果表达式1 结果为真 则返回的是表达式1 如果表达式1 结果为假 则返回表达式2alert(123 || 456); // 123alert(123 || 456 || 456 + 123); // 123alert(0 || 456 || 456 + 123); // 456

    逻辑中断很重要 它会影响我们程序运行结果var num = 0; //alert(123 || num++); //123num++不会运行//alert(num); // 0


    1.5 赋值运算符
    运算符 描述 案例
    = 直接赋值 var userName = 'fan'
    += -= 加减一个数后 再赋值 var age=5; age+=5
    *= /= %= 乘、除、取模后再赋值 var age=5; age*=5


    1.6 运算符优先级
    优先级 运算符 顺序
    1 小括号 ()
    2 一元运算符 ! ++ --
    3 算数运算符 先* / % 后+ -
    4 关系运算符 > >= < <=
    5 相等运算符 == != === !==
    6 逻辑运算符 先&& 后||
    7 赋值运算符 =
    8 逗号运算符 ,


    2. 流程控制 「流程控制」在一个程序执行的过程中,各条代码的执行顺序对程序的结果是有直接影响的。很多时候我们要通过控制代码的执行顺序来实现我们要完成的功能。流程控制主要有三种结构,分别是顺序结构、分支结构和循环结构,代表三种代码执行的顺序。
    分支流程控制:

    2.1 if 的语法结构
    if (条件表达式) {//执行语句}2. 执行思路 如果if 里面的条件表达式结果为真 true 则执行大括号里面的 执行语句如果if 条件表达式结果为假 则不执行大括号里面的语句 则执行if 语句后面的代码3. 体验代码:if (3 < 5) {alert('沙漠骆驼'); }

    案例:


    2.2 if else双分支语句

    案例:闰年
    //算法:能被4整除且不能整除100的为闰年(如2004年就是闰年,1901年不是闰年)或者能够被 400 整除的就是闰年// 弹出prompt 输入框,让用户输入年份,把这个值取过来保存到变量中// 使用 if 语句来判断是否是闰年,如果是闰年,就执行 if 大括号里面的输出语句,否则就执行 else里面的输出语句// 一定要注意里面的且 &&还有或者 || 的写法,同时注意判断整除的方法是取余为 0var year = prompt("请输入要检测的年份:")if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {alert(year + '是闰年')} else {alert(year + '是平年')}


    2.3 if else if语句(多选1)

    案例:成绩


    2.4 三元表达式

    案例 : 数字补0???????


    2.5 switch分支流程控制
    switch 语句也是多分支语句,它用于基于不同的条件来执行不同的代码。当要针对变量设置一系列的特定值的选项时,就可以使用 switch。

    注意事项:
    var num=1; switch(num){case 1: console.log(1); break; //1case 2: console.log(2); break; case 3: console.log(3); break; }// 1. 我们开发里面 表达式我们经常写成变量// 2. 我们num 的值 和 case 里面的值相匹配的时候是 全等必须是值和数据类型一致才可以 num === 1

    break 如果当前的case里面没有break 则不会退出switch 是继续执行下一个case
    var num=1; switch(num){case 1: console.log(1); //1case 2: console.log(2); //2case 3: console.log(3); //3}

    案例:查询水果案例

    switch 语句和 if else if区别:
    1. 一般情况下,它们两个语句可以相互替换

    2. switch...case 语句通常处理case为比较确定值的情况,而if...else...语句更加灵活,常用于范围判断(大于、等于某个范围)

    3. switch 语句进行条件判断后直接执行到程序的条件语句,效率更高。而if..else 语句有几种条件,就得判断多少次。

    4. 当分支比较少时,if...else语句的执行效率比switch语句高。

    5. 当分支比较多时,switch语句的执行效率比较高,而且结构更清晰。

    总结 本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

      推荐阅读