zoukankan      html  css  js  c++  java
  • Javascript 的类型转换之减号

      专职写JS已经有一个月了(对,没错就是一个月),从2014年11月24实习开始到今的2月份,我做的工作一直都是切图,另外跟着老板学产品,现在我一听到切图两字,我就想吐...所以我找了一份专职写JS的工作,尼玛说道JS,我想来想去JS中最让我容易搞乱的就类型转换了。所以狠下心来,这几天把类型转换给搞清楚...

    今天说一下减法对于类型转换的影响(摘抄自高程三):

    减法操作符(-)是一个极为常用的操作符,七用法如下所示:

    var result = 2 -1;
    

    与加法操作符类似,ECMAScript 中的减法操作符在处理各种数据类型转换时,同样要遵循一些特殊规则,如下所示:

     1、如果两个操作符都是数值, 则执行常规的算术减法操作,并返回结果。

     2、如果有一个操作数是NAN, 则结果也是NaN。

     3、如果有一个操作数是字符串、布尔值、null、undefined则先在后台调用Number()方法将其转换为数值, 然后在根据根据前面的规则进行减法计算,如果转换的结果是NaN, 则减法的结果就是NaN。

     4、如果有一个操作数是对象,则调用对象的 valueof() 方法以取得该方法返回后的值,如果得到的值是NaN,则减法的结果就是NaN, 如果对象没有valueOf()方法,则调用其toString()方法并将得到的字符串转为数值。

    大概就这四条,其他的感觉实际开发中用处不大。

    下面举个例子:

        //var res = 5 - true; 
        // 4 因为true被转换成1了
    
        //var res = NaN - 1;
        // NaN
    
        //var res = 5 - 2;
        // 3
    
        //var res = 5 -"";
        // 5 因为空字串被转换成0了
    
        //var res = 5 - "2";
        // 3 因为字符串2被转成数字2了
    
        var res = 5 - null;
        // 5 因为null 被转换成数值0了
    
        // 在js中null、""、false 都可以被转化成数字0
        // undefined 转成数值是 NaN
        // 非空字符串 转为数值是: 字符串对应的数字值 或 NaN
  • 相关阅读:
    time 模块学习
    day 14 自定义模块,常用模块 time .datetime ,time 模块
    day 13 课后作业
    day 12 课后作业
    day 11课后作业
    树状数组最值
    hdu 1059 Dividing bitset 多重背包
    XVII Open Cup named after E.V. Pankratiev. XXI Ural Championship
    最长公共子序列板/滚动 N^2
    Uva 10635
  • 原文地址:https://www.cnblogs.com/zsongs/p/5313715.html
Copyright © 2011-2022 走看看