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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM