js小节其二

类型转换

        字符串转换

                alert()

                string()

                prompt()

        数字类型转换

                Number()

                在数字字符串前加  + 

                在表达式或字符串后加  * 1

        布尔类型转换

                undefined ,null ,0 , NaN均为  false        

                0以外的所有数字均为  true

                “ ”        true        

                “abc”        true        

                “”        false

        特殊值

                转小写   toLowerCase()

                转大写   toUpperCase()

                undefined 转化为 NaN

                null  转为  0

                true  转为  1

                false  转为  0

                “”       转为  0

                “  ”     转为  0

运算符

        运算符 + 变量,一元运算符

        算术运算符

                + - * / % ** ++ --

        赋值运算符

                =

                += -= *= /= %=

        自增自减运算符

                ++ --  

                前后置区别:

                        ++变量,该表达式的值为变量变化后的值

                        变量++,该表达式的值为变量变化钱的值         

        关系运算符

                 > < >= <=  ==  ===  !==  !===

                关系运算符的结果都是布尔类型

        不同类型比较

                数字类型,先转为为数字类型,在判断大小

                布尔类型,true转为1,false转为0

                0 == “0”

                严格相等

                        严格相等比较时,不进行类型转换

        null和undefined比较

                null == undefined  //true

                null === undefined   //false      

                

            null ,undefined 和其他类型比较

            //null = 0

            console.log(null > 0);//false

            console.log(null >= 0);//true

            console.log(null <= 0);//true

            console.log(null < 0);//false

            //没有转换类型

            console.log(null == 0);//false

            //undefined = NaN

            console.log(undefined > 0);//false

            console.log(undefined >= 0);//false

            console.log(undefined < 0);//false

            console.log(undefined <= 0);//false

            console.log(undefined == 0);//false

        位运算符          

            按位与( & )

            按位或( | )

            按位异或( ^ )

            按位非(~ )

            左移( << )

            右移( >> )

            无符号右移( >>> )

        逗号运算符

             let a = (1 + 2, 3 + 4);

            alert( a ); // 7(3 + 4 的结果)

        三元运算符

                格式:(条件表达式)?表达式1:表达式2

                计算结果:如果条件为真,结果为表达式1,否则返回表达式2

                与if-else的区别:

                        1、三元运算符可简化if-else

                        2、三元运算符必须返回一个结果,因为运算符必须返回一个结果

                        3、if后边的代码块可以有多个

逻辑运算符

        && 短路 与

        逻辑运算符两边可以为任意类型,会自动进行类型转换,转换为布尔类型,在判断

                1、传统的编程当中,当两个操作都为真时,返回true,否则返回false(见假就假)

                2、寻找第一个假值

                        从左到右依次计算操作数

                        在处理每一个操作数时,都将其转化为布尔值,如果结果为false,就停止计算,

                并返回初始值(数字原本的值,不是true和false)。

                        如果所有的操作数都被计算过,例如都是真值,则返回最后一个操作数。

                        换句话说,与运算返回第一个假值,如果没有假值就返回最后一个值。

                        上面的规则和运算很像,区别就是与运算返回第一个假值,而或运算返回第一个真

                值。

                3、短路

                        与运算符 && 的另一个用途是所谓的“短路求值”;

                        这指的是,&&对其参数进行处理,直到达到第一个假值,然后立即返回该值,而

                无需处理其他参数

                        如果操作数不仅仅是一个值,而是一个有副作用的表达式,例如变量赋值或函数调

                用,那么这一特殊的重要性就变得显而易见了。

                        注意:

                        && 与运算符的优先级比 || 或运算符的优先级要高。

                        所以代码a && b || c && d跟 &&表达式加了括号完全一样:(a && b) || (c && d)

                        总结:

                        &&逻辑运算规则

                        操作1        操作2        结果

                        true            true           true

                        true            false          false

                        false           true           false

                        false           false         false

                        见假就假

                        js的&&操作都是 短路 操作

                        如果第一个值为false,则第二个值不进行操作。

        || 短路 或  见真就真  布尔类型

                从左到右依次计算操作数

                        处理每一个操作数时,都将其转化为布尔值,如果结果是true,就停止计算,返回

                这个操作数的初始值。

                        如果所有的操作数都被计算过(也就是,转换结果都是false),则返回最后一个

                操作数。

                        返回的值是操作数的初始形式,不会做布尔转换

                        换句话说,一个或运算 || 的链,将返回第一个真值,如果不存在真值,就返回该链

                的最后一个值

        ! 逻辑 非

                ! 便是布尔非逻辑运算

                语法:

                        res = !value        

                运算逻辑:

                        将操作数转换为布尔类型,true/false

                        两个!!非操作将某个值转换为布尔类型

                        !!把非布尔类型转换为布尔类型

                优先级:

                        ! > && > ||

        ??空值合并运算符

                当一个值既不是null也不是undefined时,我们将其成为“已定义的(defind)”

                a??b

                如果a是已定义的,则结果返回a

                如果a不是已定义的,则结果返回b

                换句话说,如果第一个参数不是null和undefined,则??返回第一个参数,否则,返回

        第二个参数。

                使用场景:

                        1、给变量提供默认值

                        2、从一系列的值中选出第一个非null和undefined的值

                        于安全原因,JavaScript禁止将??运算符与&&和 || 一起使用,除非括号指明了优先级

                        判断数字

                         isFinite        

                        isNaN

            

     

                

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值