+ 加法 / - 减法 / *乘法 / /除法 / %取摸 / 取反运算 /隐式类型转换规则

如果加号两侧的操作数有其中任何一个是 字符串(String)类型 的,这时候+ 起到的是字符串拼接作用

        alert('1' + 10);   //110

作为加法运算,注意以下几点:

        - Number类型

                - 如果左右两侧的 操作数 都是 数值,那么作为正常的加法进行运算                 alert(1+2);

                - 如果其中一个操作数,是NaN,那么结果就是NaN                alert(NaN + 2);

            var result = '1' + 2 + 3;            // 15 是错误的答案

            '1' + 2 = '1' + String(2) = '1' + '2' = '12'

             '12' + 3 = '12' + '3' = '123'


作为减法运算,注意以下几点:

        - Number类型

                - 如果左右两侧的操作数,都是数值的话,正常进行减法计算;

                - 如果任何一个操作数,是NaN,那么结果就是NaN

        - string、 null、 undefined、 true、false

                - 左右任何一侧不为Number类型的情况,会调用Number进行转换,将其转为Number类型之后,再进行计算。

        alert(null - '10');

        alert(Number(null) - Number('10')); // 0 - 10 = -10


作为乘法运算,注意以下几点:

        - Number类型

                - 左右为数值,进行正常的乘法运算              alert(2 * 3);

                - 任何一侧为NaN,则结果返回NaN                alert(NaN * 3);

                - 如果有一侧不是Number类型的,则(根据对应规则)转为数字类型后,再进行计算

        alert(true  * 3);         // 1 * 3     隐式类型转换  Number(true) = > 1


作为除法运算,注意以下几点:

        - Number类型

                - 左右两侧均为数值,正常进行除法计算              alert(6 / 3 );

                - 如果任何一侧为NaN,则结果返回NaN              alert(NaN / 3);

                - 有任何一侧不是Number类型,则(根据对应的规则)转成数字类型后,再进行计算。

         // alert(true / 2);        // 隐式类型转换     Number(true) => 1

        // alert(10 / 0);       // Infinity无限    我们不允许0作为除数

        alert(0 / 0);            // NaN    特殊的


取反运算

        取反运算符是一元运算符,也称一元减法运算符。


隐式数据类型转换,也就是说这个转换过程不受我们强制, js 偷偷自己转的

        转换规则参考ECMAScript

              英文 http://www.ecma-international.org/ecma-262/5.1/#

              中文 http://www.fengfly.com/document/ECMAScript5.1/

        - Number类型

                    - 如果左右两侧均是数值,则进行除法计算,结果返回余数!!!

var a = 367;

var b = 15;

alert(a % b);     // 7

                    - 任何一侧为NaN,则结果返回NaN               alert(a % NaN)

                    - 只要除数是0,则结果返回NaN                  

alert(10 % 0)          //这里是NaN                    

alert(10 / 0)        //Infinity    和取模不太一样

                - 如果有一侧不为Number类型,则(根据对应的规则)转为数字类型后,再进行计算。

alert(true % 15)        //1


利用隐式类型进行转换    +str

var str = '123';

        var result = str + 2;              //1232

        var result = Number(str) + 2;      //125

 var result = +str + 2;               //125    方便的隐式转换


字符串的拼接

        var num1 = 10;

        var num2 = 20;

        var result = num1 + num2;                // 30

        var result = num1 + '' + num2;                  // 1020

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值