• 其他数据类型自动转化为数值类型


    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <script>
            // 其他数据类型自动转化为数值类型
            // 在进行 非加法 算术运算时 其他数据类型类型会自动转化为数值类型
            // 加法 如果有字符串参与 会执行 字符串拼接
            // 如果 加法 是 非字符串的其他数类型,也会自动转化为数值类型

            // 总之,你要注意 + 加法 和 字符串的问题

            // 任何有 NaN参与的运算,结果都是NaN

            // 转化原则
            //  布尔类型 true  ---> 1
            //  布尔类型 false ---> 0
            //  null          ---> 0
            //  undefined     ---> NaN   只要有undefined参与的运算,结果都是NaN

            // 字符串  特别注意,如果是+加号,是字符串拼接操作
            //    情况1 : 符合数字规范的字符串  纯数字字符串,科学计数法字符串
            //            可以 转换为对应数值的字符串
            //            转化为对应的字符串内容
            //            字符串中,可以带有符号,会转化为相应的负数来参与运算

            //    情况2 : 不符合数字规范的字符串 有其他不符合数字规范的内容
            //            统统转化为 NaN 运算结果也是 NaN

            // 三种特殊情况
            // 数组,对象,函数
            //     如果是 + 加法,执行字符串拼接操作,转化原则,参看字符串拼接转化原则
            //     如果是 其他运算形式 统统转化为 NaN 执行结果也是NaN


            // 布尔类型true 转化为1
            var int1 = 100 - true;
            console.log(int1);

            // 布尔类型false 转化为0
            var int2 = 100 - false;
            console.log(int2);

            // null 转化为0
            var int3 = 200 - null;
            console.log(int3);

            // undefined 转化为 NaN
            // 任何有NaN参数与的运算,结果都是NaN
            var int4 = 200 - undefined;
            console.log(int4);


            // 字符串情况1,符合数字规范的字符串
            // 转化为数值 -100 参与运算
            var int5 = 100 - '-100';
            console.log(int5);

            // 字符串情况1,符合数字规范的字符串
            // 转化为浮点数 100.123
            // 计算结果,要考虑有可能出现误差/精度丢失效果
            var int6 = 100 - '100.123';
            console.log(int6);

            // 字符串情况1,符合数字规范的字符串
            // 2e3转化为数值 2000,参与运算        
            var int7 = 100 - '2e3';
            console.log(int7);


            // 字符串情况2,有不符合数字规范的内容

            var int8 = 100 - '北京';
            var int9 = 100 - '100北京';
            var int10 = 100 - '北京100';
            var int11 = 100 - '2e3北京';
            var int12 = 100 - '北京2e3';
            console.log(int8);
            console.log(int9);
            console.log(int10);
            console.log(int11);
            console.log(int12);


            // 特殊情况

            // 数组
            var arr = [1,2,3,4,5];

            var int13 = 100 + arr;
            var int14 = 100 - arr;
            console.log(int13);
            console.log(int14);

            // 对象
            var obj = {name:'张三'};
            var int15 = 100 + obj;
            var int16 = 100 - obj;
            console.log(int15);
            console.log(int16);

            // 函数
            function fun(){
                console.log(123);
            }

            var int17 = 100 + fun;
            var int18 = 100 - fun;
            console.log(int17);
            console.log(int18);

        </script>
    </body>
    </html>

    右侧打赏一下 代码改变世界一块二块也是爱
  • 相关阅读:
    vi编辑器更新...
    centos7 修改密码
    Linux的vi编辑器笔记
    linux 基本命令2(12月27日笔记)
    linux 进阶命令笔记(12月26日)
    linux 基础命令(12月25日笔记)
    谈谈CSS3中display属性的Flex布局(弹性布局)
    微信小程序页面跳转的三种方式总结
    微信小程序animation有趣的自定义动画
    微信小程序wx.setStorage(OBJECT)
  • 原文地址:https://www.cnblogs.com/ht955/p/14002907.html
Copyright © 2020-2023  润新知