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
  • 相关阅读:
    webpack
    Js数组和字符串常用方法
    Vue.js 2.0 快速上手
    雅虎前端优化的35条军规
    前端问题大杂烩
    Java和js的区别,以及Java和c的区别
    前后端联调
    99%的人都理解错了HTTP中GET与POST的区别
    vue项目目录
    vuex入门
  • 原文地址:https://www.cnblogs.com/zsongs/p/5313715.html
Copyright © 2011-2022 走看看