2)流程控制语句-各种运算&if语句

数学运算符 

  • 概述:数学运算符也称为数学操作符。无非就是 + - * /
  • 连字符:在数学运算中,+ 比较特殊。如果有字符串参与的语句,加号不是数学加法而是字符串时,在从左到右拼接字符串
  • 特别注意:在JS中,不仅仅Number类型的数据可以参与数学运算。
  • 其他类型(字符串、布尔、未定义、空对象)的数据也可以参与数学运算,只不过浏览器的解析器,自动将其他类型的数据“隐式转换”为数字参与数学运算

Number类型参与数值类型

  • NaN是number类型的特殊值,NaN参与的运算结果都为NaN
  • NaN+5
  • NaN-5
  • NaN*5
  • NaN/5
  • NaN%5

 

其他类型数据参与(不含字符串类型)

  • 概述:JS当中,不仅仅Number类型的数值可以参与数学运算,其他类型的数据也可以参与数学运算
  • 只不过,浏览器翻译会自动将这些数据“隐式转换"为数字参与运算
  • Boolean

    Undefined

    null

    可以直接进行运算

  • String类型参与

  • 概述:在JS当中,数学运算符一共五个:+ - * / %
  • 特别注意:上面我们学过了+ ,那么其他的运算呢? - * / %
<script type="text/javascript">
    console.log(Number(""));            //0
    console.log(Number("123"));         //123
    console.log(Number("123呜呜呜"));   //NaN
    console.log(Number("呜呜呜123"));   //NaN
    console.log(Number("呜呜呜"));      //NaN
    console.log(Number("666" - 333));      //333
    console.log(Number(" " * 10));      //0
    console.log(Number("呜呜呜" * 10 -999));      //NaN
</script>   

比较运算符

  • 概述:JS语言当中也有所谓的比较运算符(比较操作符)'>' ' '>=' ' '=='(不全判断-类型可以不同) ‘!=' '===='(全判断-类型都要一样)
  • =号是赋值运算符,不是比较预算符
  • JS 语言中比较运算符一共有八个
  • 结果为真返回布尔值true,如果结果为假则返回false
  • 特别注意:在生活学习当中,经常出现数字和数字进行大小比较,需要注意的是,JS这门语言当中,不仅仅是数字类型,其他类型也可以参与比较运算,也是隐式转换

数字类型比较

<script type="text/javascript">
    console.log( 3>8 );//false
    console.log( 8>3 );//true
    console.log( 8==3 );//false
    console.log( 8!=3 );//true
    console.log( 8!=8 );//false
    console.log( 8>=8 );//true
    console.log( 8<=8 );//true
    console.log( 8<=88 );//true
    console.log( 8>=88 );//false
    console.log( 8===8 );//true
    console.log( 8=='8' );//true
    console.log( 8==='8' );//false
</script>   

特殊数字类型比较

    console.log( Infinity > NaN );//false
    console.log( Infinity == NaN );//false
    console.log( Infinity < NaN );//false
    console.log( Infinity < 999 );//false
    console.log( Infinity > 999 );//true
    console.log( Infinity <= 999 );//false
    console.log( Infinity >= 999 );//true
    console.log( Infinity != 999 );//true
    console.log( NaN >= 999 );//false
    console.log( NaN <= 999 );//false
    console.log( NaN < 999 );//false
    console.log( NaN > 999 );//false
    console.log( NaN != 999 );//true
    
    console.log( NaN != 'NaN' );//true
    console.log( NaN == 'NaN' );//false
    console.log( NaN === 'NaN' );//false
    console.log( Infinity != 'Infinity' );//false
    console.log( Infinity == 'Infinity' );//true
    console.log( Infinity === 'Infinity' );//false
    
    console.log( NaN == NaN );//false
    console.log( NaN === NaN );//false
    console.log( Infinity == Infinity );//true
    console.log( Infinity === Infinity );//true

其他类型的数据参与比较(布尔、未定义、空对象)

  • 其他类型的数据参与比较运算的时候,需要“隐式转换”为数字参与比较运算
    console.log( null == null );//true
    console.log( null === null );//true
    console.log( null != null );//false
    console.log( null == 'null' );//false
    console.log( null === 'null' );//false
    console.log( null != 'null' );//true    
    console.log( null > 999 );//false
    console.log( null < 999 );//true

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

    console.log( undefined > NaN );//false
    console.log( undefined < NaN );//false
    console.log( undefined == NaN );//false
    console.log( undefined === NaN );//false

字符串类型比较

  • 概述:字符串也可以比较运算
  • 其他类型的数据(数字、布尔、未定义、空对象)和字符串进行比较。通过“隐式转换“为数字进行对比
  • 字符串和字符串进行比较,通过ACSII进行对比,通过从左到右一个个字符进行比较
  • ACSII知识点:0~9<A~Z<a~z
    console.log( 123 > '666' );//false
    console.log( true > '666' );//false
    console.log( false < '666' );//true
    console.log( null < '666' );//true
    console.log( null > '666' );//false
    console.log( null == 0 );//false
    console.log( null === 0 );//false

    
    console.log( null > '' );//false
    console.log( null == '' );//false
    console.log( null === '' );//false
    console.log( false > '' );//false
    console.log( false == '' );//true
    console.log( false === '' );//false
    console.log( false > null );//false
    console.log( false == null );//false
    console.log( false === null );//false
    
    console.log( "2b" > "3c" );//false
    console.log( "ace" > "afe" );//false
    console.log( "ace" > "acef" );//false
    console.log( "123EAA" > "123AAAAAA" );//true
    console.log( "小明" === "小明" );//true

逻辑运算符

  • 概述:在JS中有逻辑运算符的,一共是3个,与&& 或|| 非!
  • JS当中一般情况下布尔值参与逻辑运算,但是其他类型的数值也可以逻辑运算,只不过浏览器汇总的解析器将其他类型“隐式转换”为布尔类型参与逻辑运算

布尔类型

与A && B

  • 两个同时为真的时候返回的结果才为true,否则为false
    console.log( true && true );//true
    console.log( true && false );//false
    console.log( false && false );//false

或 A || B

  • 两者有一个为真返货true,两个为false返回false
    console.log( true || true );//true
    console.log( true || false );//true
    console.log( false || false );//false

非!A

  • 置反
    console.log( !true );//false
    console.log( !!true );//true
    console.log( !false  );//true
    console.log( !!false  );//false

其他类型数据参与

  • 概述:JS语言当中,其他类型数据(数字、字符串、未定义、空对象)也可以参与逻辑运算
  • 这种非正常现象,返回的结果可能不是布尔值。是优于其他类型数据参与逻辑运算的时候,浏览器解析器会进行“隐式转换“为布尔值进行参与
  • 出来数值中除了NaN和0是false,其他都是true
  • 空字符串为false,非空字符串为true
    console.log( Boolean(0) );//false
    console.log( Boolean(1) );//true
    console.log( Boolean(666) );//true
    console.log( Boolean(-666) );//true
    console.log( Boolean(Infinity) );//true
    console.log( Boolean(undefined) );//false
    console.log( Boolean(NaN) );//false
    console.log( Boolean('') );//false
    console.log( Boolean(' ') );//true
    console.log( Boolean('666') );//true
    console.log( Boolean(null) );//false

逻辑与

  • 结合串联和并联电路的思想
  • 逻辑与,如果串联A灯泡亮了(true),电流会流到B,结果为B
  • 逻辑与,如果串联A灯泡坏了(false),电流只会流到A,结果为A
    console.log( 1 && 2 );//2
    console.log( 2 && 1 );//1
    console.log( NaN && 1 );//NaN
    console.log( NaN && null );//NaN
    console.log( Infinity && 1 );//1
    console.log( Infinity && null );//null
    console.log( 1 && Infinity );//Infinity
    console.log( null && Infinity );//null
    console.log( null && NaN );//null
    console.log( NaN && NaN );//NaN
    console.log( null && null );//null
    console.log( "张三" && "李四" );//李四
    console.log( '' && Infinity );//返回为:空
    console.log( Infinity && '' );//返回为:空

逻辑或

  • 结合串联和并联电路的思想
  • 逻辑或,如果串联A灯泡亮了(true),电路完成,结果为A
  • 逻辑或,如果串联A灯泡坏了(false),电流还会流到B,结果为B
    console.log( 1 || 2 );//1
    console.log( 2 || 1 );//2
    console.log( NaN || 1 );//1
    console.log( NaN || null );//null
    console.log( Infinity || 1 );//Infinity
    console.log( Infinity || null );//Infinity
    console.log( 1 || Infinity );//1
    console.log( null || Infinity );//Infinity
    console.log( null || NaN );//NaN
    console.log( NaN || NaN );//NaN
    console.log( null || null );//null
    console.log( "张三" || "李四" );//张三
    console.log( '' || Infinity );//Infinity
    console.log( Infinity || '' );//Infinity

提高

    console.log( 3 > 6 && 99 < 22 );//flase
    console.log( 3 < 6 || 99 < 22 );//true
    console.log( "小明" || 99 < 22 );//小明
    console.log( "小明" && 99 < 22 );//false
    console.log( "小明" && 99 > 22 );//true
    console.log( "小明" && 99 > 22 || null );//true
    console.log( "小明" && null || 99 > 22 );//true
    console.log( "小明" || 99 > 22 && null );//小明
    console.log( null || 99 > 22 && "小明" );//小明
    console.log( Infinity || 99 > 22 && "小明" );//Infinity

if条件语句

  • 概述:在JS语言当中,是有所谓的流程控制语句。流程控制语句:条件语句、循环语句
  • 如果程序中出现一种或者多种情况进行选择的时候,只能选择某一个符合条件的分支去执行了,这样的语句成为条件语句

基本使用

        if(条件){

                代码

        }

  • 小括号条件一般是布尔值、其他类型数值、运算计算完结果
  • 大括号里面的是执行的代码
  • 如果条件为真的时候,才会执行大括号里面的代码,为假则不执行
  • if条件中一般需要布尔值,但是其他类型的数据可以参与,会“通过隐式转换”来判断

用上节的语句作为条件

    if(Infinity || 99 > 22 && "小明"){
        alert("这里条件是(Infinity || 99 > 22 && '小明')");
    }

    if("小明" || 99 > 22 && null){
        alert("这里条件是('小明' || 99 > 22 && null)");
    }

 

 下面条件不成立

    if('3 > 6 && 99 < 22'){
        alert("这里条件是(3 > 6 && 99 < 22)");
    }
    if(''){
        alert("这里条件是('')");
    }
    if(null){
        alert("这里条件是(null)");
    }   
    if(NaN){
        alert("这里条件是(NaN)");
    }

else关键字

        if(条件){

                代码

        }else{

                代码

        }

  • 关键字else可以结合if语句一下使用,不是必须的。
  • else关键字(否则),如果条件不成立,则会执行else后面的代码
    if(NaN){
        alert("这里条件是(NaN)");
    }else{
        alert("这里是else");
    }

 

    var num =  prompt("请输入一个数字:")
    if(num % 2 == 0 ){
        alert("这是一个偶数");
    }else{
        alert("这是一个奇数");
    }

多分支if条件语句

  • 概述:多分支if条件语句,是if条件语句的升级版,在多种情况下,选择其中一个符合条件的分支去执行

        if (条件){

                代码

        } else if (条件) {

                代码

        } else if (条件) {

                代码

        }

    var num =  prompt("请输入您的成绩:")
    if(num > 90 ){
        alert("您的成绩是优秀");
    }else if( num >= 60){
        alert("您的成绩是及格");
    }else if( num  < 60){
        alert("您的成绩不及格");
    }else{
        alert("请输入正确的成绩")
    }

if条件语句的嵌套使用

  • if条件语句中结构体内可以书写任意代码,甚至可以咋内部书写一个条件语句。
  • 特别注意:如果嵌套在内部条件语句执行,外部条件符合条件才行
    var sex =  prompt("请输入您的性别:")
    var age =  prompt("请输入您的年龄:")
    if(sex  == "男" ){
        if(age >= 22){
            alert("兄弟你符合结婚年龄");
        }else{
            alert("兄弟再等等");
        }
    }else{
        if(age >= 18){
            alert("美女你符合结婚年龄");
        }else{
            alert("美女别那么着急");
        }
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值