JS基本语法03

一、表达式和返回值

    <script>
        // 表达式:由数字、运算符、变量等组成的式子
        // 1+1=2
        var num;
        num=1+1;//表达式
        // num是返回值
        console.log(num);
    </script>

二、运算符

    <script>
        // 运算符:也叫操作符,主要是实现赋值、算术运算等功能
            // typeof 也是运算符
            // + - * / %
            // +加法运算符
            // 只要是跟字符串相加的都会转成字符串(相互拼接)
            // 数字跟NaN相加的都是NaN,字符串跟NaN相加都是拼接
            // console.log(1+1);//2
            // console.log(1+'1');//11
            // console.log('1'+true);//1true
            // console.log(1+true);//2
            // console.log(1+'true');//1true
            // console.log(1+NaN);//NaN
            // console.log('1'+NaN);//1NaN

            // -减法运算符
            // 减法运算符会把字符串中的数字转化为数值型,非数值型的字符串就会是NaN
            // console.log(1-1);//0
            // console.log(1-'1');//0
            // console.log(1-true);//0
            // console.log(1-'true');//NaN
            // console.log('1'-true);//0
            // console.log(1-NaN);//NaN
            // console.log('1'-NaN);//NaN

            // 乘法运算符也会把字符串的数字转化为数值型
            // 数值乘非数值型的字符串返回的是NaN
            // 小数也可以相乘,结果不加浮点数
            console.log(1*1);//1
            console.log(1*'1');//1
            console.log(1*true);//1
            console.log(1*'true');//NaN
            console.log('1'*true);//1
            console.log(1*NaN);//NaN
            console.log('1'*NaN);//NaN
            console.log(10.0*2.5);//25
            console.log(10*2.0);//20

            // 除法运算符也会把字符串的数字转化为数值型
            // 数值除非数字型的字符串返回的是NaN
            // 会保留小数,不会四舍五入
            // 小数也可以相除,结果不加浮点数
            console.log(1/1);//1
            console.log(1/'1');//1
            console.log(1/true);//1
            console.log(1/'true');//NaN
            console.log('1'/true);//1
            console.log(1/NaN);//NaN
            console.log('1'/NaN);//NaN
            console.log(10/2.5);//4
            console.log(10.0/2.0);//5

            // % 取余运算符
            console.log(4%2);//0
            console.log(3%2);//1
            console.log(9%2);//1
            console.log(19%2);//1

            var str = '白日依山尽,黄河入海流';
            console.log(str);
            var str1 = '白日依山尽,\n'
            +'黄河入海流';
            console.log(str1);

            // 浮点数 小数
            // 浮点数精确度 浮点值最高精确度17位小数,在算术运算中浮点数之间的运算精确度没有整数高
            console.log(1 + 1);//2
            console.log(1 + 2);//3
            console.log(0.1 + 0.2);//0.30000000000000004
            console.log(0.1 * 0.2);//0.020000000000000004
    </script>

三、递增运算符

    <script>
        // 递增运算符:反复给数字变量增加相同的值,例如增加1
         var num=1;
         console.log(num+1);//2

        //  前置递增 简写 ++变量名 先自加1再进行其他运算
        var num=3;
        console.log(++num);//4
        console.log(++num+2);//7

        // 后置递增 变量名++ 先运算在自加
        var num=3;
        console.log(num++);//3
        //num=num+1
        console.log(num);//4
    </script>

四、递减运算符

    <script>
        // 递减运算符:分为前置递减(--num) 后置递减(num--) 前置的优先级高于后置
        //             前置和后置都是立马给变量减1
        //             前置递减(--num)是递减后的新值
        //             后置递减(num--)是原来的值
          var num = 10;
          console.log(num-- + --num);//18 
          console.log(num); //8        
    </script>

五、比较运算符

    <script>
        // 比较运算符:两个值之间的比较所使用的运算符,会返回一个布尔值(true/false)
        console.log(1>2);//false
        console.log(2<3);//true
        console.log(2>=3);//false
        console.log(1==2);//false
        // ==是指值相等就会返回true,把字符串里面的数字转化为数字作比较
        console.log(18=='18')//true
        // ===是值相等的同时数据类型也必须相等(全等于)
        console.log(18==='18')//false
        console.log(12=='nihao')//false
        console.log('hello'=='nihao');//false
        console.log('hello'==='nihao');//false
        console.log('181'==='18');//false
        var h=20;
        var i= h++ + ++h;
        console.log(i);//42
    </script>

六、逻辑运算符

    <script>
        // 逻辑运算符:就是用来进行布尔运算的运算符,返回值也是布尔值,开发中常用
            // 逻辑与 && 其实就是and
                // 特点:两边必须都是true才会返回true,否则返回false
                console.log(2>3&&3<4);//false
                console.log(5<6&&7<8);//true
                console.log(5>6&&7>8);//flase

            // 逻辑或 || or
                // 特点:两边只要有一个true就会返回true,两边都是false时才会返回false
                console.log(2>3||3<4);//true
                console.log(5<6||7<8);//true
                console.log(5>6||7>8);//false

            // 逻辑非 ! not
                // 特点:也叫取反,用来取一个布尔值的相反值,例如 true的相反值时false
                var flag = true;
                console.log(!true);//false
                var flags = !flags;
                console.log(flags);//true
                console.log(!flags);//false
    </script>

七、短路运算

        // 短路运算:当有多个表达式时,左边的表达式的值可以确定结果时,就不再继续运算右边的表达式
            // 逻辑与 &&
                // 语法:表达式1&&表达式2
                // 特点:如果第一个表达式的值为真时,就返回第二个表达式
                        // 如果第一个表达式为假时,就会返回第一个表达式
                        // 数字里0代表假 除0以为都是真
                        console.log(1 && 2);//2
                        console.log(0 && 2);//0
                        console.log(12 && 23 && 34);//34

            // 逻辑或 ||
                // 语法:表达式1||表达式2
                // 特点:如果第一个表达式为真时,则返回第一个表达式
                        // 如果第一个表达式为假时,就会返回第二个表达式
                        console.log(123||456);//123
                        console.log(0||234);//234
                        console.log(123||0||456||234);//123
    </script>

八、(逻辑)运算符优先级:!>&&>||

    <script>
        // JS中和数学中一样,运算符也具有优先级
            // 逻辑与比逻辑或优先级高,从左到右运算,想要改变计算结果需要加括号
            // 数学中 加减乘除
            console.log(11&&22||33);//22
            console.log(11||22&&33);//11
            console.log(0&&22||33);//33
            console.log(4<6 || '1'!=1 && true)//true

            var num = 10;
            console.log(5 == num / 2 && (2+2*num).toString()==='22')//true

            var a=3>5 && a<7 && 3==4;
            console.log(a);//false
            var b= 3<=4 || 3>1 ||3!=2;
            console.log(b);//true
            var c = 2==='2';
            console.log(c);//false

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

九、相等运算符

    <script>
        // == 只要值相等就返回true 否则返回false 底层:就是把两个数据类型自动转换成同一种数据类型
        // 其实undefined是null衍生而来的
        console.log(undefined==null);//true
        // === 必须值和数据类型一致的情况下才会返回true,不会进行数据类型的转换
        // != 不等于 两个值会自动转换成同一种值
        console.log(5!=4);//true
        console.log('5'!=4);//true
        console.log('4'!=4);//false
        console.log('abc'!='xyz');//true
        // !== 完全不相等 不会进行数据类型的转换
        console.log(5!==4);//true
        console.log('5'!==4);//true
        console.log('4'!==4);//true
        console.log('abc'!=='xyz');//true
    </script>

十、一元运算符

    <script>
        //  一元运算符:就是一个值的运算 
        // 特点:+-会自动把值转换成数值型的 
        var num='2';
        var num1 = 'fdd';
        console.log(+num);//2
        console.log(-num);//-2
        console.log(num1);//fdd
        console.log(-num1);//NaN
        console.log(+true);//1
    </script>

十一、赋值运算符

    <script>
        // 赋值运算符
        // 加法运算符
        var age = 18;
        age = age+1;
        console.log(age);//19
        console.log(age += 1);//20
        // 减法运算符
        // age = age-1;
        console.log(age -= 1);//19
        // 除法运算符
        // age = age/2;
        console.log(age /= 2);//9.5
        // 乘法运算符
        // age = age*2;
        console.log(age *= 2);//19
        //取余取余运算符
        // age = age % 2;
        console.log(age %= 2);//1
    </script>

十二、三元表达式

    <script>
        // 三元表达式:三个表达式 语法:表达式1?表达式2:表达式3
            // 如果表达式1为真的话,会返回表达式2,如果表达式1为假的话,会返回表达式3

        console.log(3>4?1:2);//2
        var num = '';//空字符串就是假
        console.log(num?num:'2')//2
        console.log(4>3?4>5?2:3:2)//3
        var str = '1';
        console.log(str == 1?'已支付':'未支付');//已支付
        var flag = true;
        console.log(true?'0':'1');//0

        // 三元表达式的场景:
            // 1.列表里需要展示类似于已支付未支付等这些字眼时,后端返回的是0 1 2数字时,需要用三元表达式判断然后转化成文字展示在页面上
            // str == 1?'已支付':'未支付'
            // 2.不是必须输入的input(也可以输入内容),传给后端时,值为空,需要给一个默认值时,就需要用到三元表达式,如果用户填了内容那就传给后端用户填的,如果没填就给一个默认值
            // num?num:'2'
    </script>

十三、if分支语句

    <script>
        // {} 可以实现一段代码块
        // {
        //     console.log(111);
        //     console.log(222);
        // }
        // if语句 做判断 if(表达式) 只有表达式里为真的时候 才会进行下去
            // if如果后面只有一段代码时,{}可以不用写,但不规范,如果没有{}那它只对紧挨着他的代码有效果

        if (1) console.log(111);//111
         console.log(222);//222

        if(true) {
            console.log(333);//333
            console.log(444);//444
        }

        // if else
/*         语法:if(表达式){

        }else{
            
        } */
        var num=2;
        if(num>0){
            console.log('我比0大');
        }else {
            console.log('你个垃圾,都没0大');
        }

        // if  else if  else
/*         语法:if(表达式){

        }else if(表达式){

        }else{

        } */
        var num1=29;
        if(num1>=90){
            console.log('宝贝,你真棒');
        }
        else if(num1>=60&&num1<90){
            console.log('宝贝,还不错哦');
        }
        else if(num1<60&&num1>=30){
            console.log('你个垃圾,都不及格');
        }
        else{
            console.log('回家种田去吧');
        }
    </script>

十四、switch分支语句

    <script>
/*         switch 分支语句 场景:是在固定的数值使用判断,匹配相同的选项(case)进行执行
            语法:switch(表达式){ //表达式为真时执行
                case value1:
                    表达式 匹配成功时执行的
                case value1:
                    表达式 匹配成功时执行的
                case value1:
                    表达式 匹配成功时执行的
            } */
            // 如果没有break时,匹配成功的表达式会执行,并且也会执行下面全部的表达式
                // break就是终止执行,跳出switch
                var num=3;
                switch(num){
                    case 1:console.log('我是1');
                    break;
                    case 2:console.log('我是2'); 
                    break;
                    case 3:console.log('我是3');
                    break;
                    case 4:console.log('我是4'); 
                    break;
                    default:console.log('没有选项啦');
                }
                var a = 10, b = 20, c = 30;
                var result = !a || b && c;
                console.log(result);//30
    </script>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值