国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

詳解加法運算符

劉永祥 / 1203人閱讀

摘要:數字加轉為,再做加法運算。在這里,被解析成一個空的因此實際上解析成這樣就是把一個空數組轉換成數值,調用之后還是自身,因此調用得到一個空字符串,轉換成數字。參考詳解的加法運算符中和的返回值情況是怎樣的

JavaScript 里面不同的類型做加法之前,需要做各種轉換,這里做一個比較完善的總結。

基本轉換規則

運算雙方存在對象時

如果有一個對象,那么先把它轉換成基本類型值

轉換之后,如果有字符串,另一個值先轉換成字符串,然后再做連接操作

如果沒有,把二者轉換成數字再相加

如果二者都是基本類型值,先檢查是否有字符串類型,如果有就做連接操作;如果沒有,就把二者轉換成數字相加。

對象轉換成基本類型值

如果是 Date 對象,那么用toString()

其它情況下,用valueOf()

其他情況下(valueOf()不存在或者不返回基本類型值),那么用toString()

舉例 數字加字符串
var result = 1 + "5" // 15

二者都是基本類型值,且有字符串,因此做連接操作。

數字加數組
var result = [1, 3, 5] + 1 // "1, 3, 51"

數組是引用類型,先用valueOf()進行轉換,但是數組的valueOf()的結果還是原來的數組,所以用toString()方法得到一個字符串"1, 3, 5";然后是一個字符串加一個數字,做連接操作。

數字加 boolean
var result = 10 + true // 11

二者都是基本類型值,且沒有字符串,所以把true轉換成數字相加。

數字加對象
var result = 15 + {} // "15[object Object]"

首先對對象做轉換,對象的valueOf還是自身,所以用toString()來轉換,{}.toString()的結果是"[object Object]",所以最后的結果就是"15[object Object]"

數字加 null
var result = 8 + null // 8

null 轉為0,再做加法運算。

字符串加 null
var result = "queen" + null // "queennull"
數字加 undefined
var result = 12 + undefined // NaN

undefined轉換成數字,得到NaN,因此加法的結果就是NaN

[] + {}
var result = [] + {} // "[object Object]"

二者都是對象,而且二者的valueOf方法的結果都是自身,所以要調用toString方法。空數組調用的結果是個空字符串,空對象調用的結果是"[object Object]", 字符串連接之后的結果就是"[object Object]"

{} + []
var result = {} + [] // 0

在這里,{}被解析成一個空的 block,因此實際上解析成這樣:

{ // empty block }
+ []

就是把一個空數組轉換成數值,調用valueOf之后還是自身,因此調用toString, 得到一個空字符串,轉換成數字0。

參考:

詳解 JavaScript 的加法運算符

JS中{}+[]和[]+{}的返回值情況是怎樣的

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/79482.html

相關文章

  • 溫故js系列(17)-詳解加法算符

    摘要:數字和解釋因為沒有任何一個操作數是字符串,將轉換為一個數字做數字加法運算因為沒有操作數是對象或字符串,將轉換為。結論以避免潛在的問題,不使用加法運算符處理對象,除非你清楚地使用或方法。 前端學習:教程&模塊化/規范化/工程化/優化&工具/調試&值得關注的博客/Git&面試資源匯總 JavaScript一路走來,備受爭議,與其說它備受爭議,不如說它不夠完美。不夠完美?那完美了還得了,它的...

    gxyz 評論0 收藏0
  • JavaScript 算符規則與隱式類型轉換詳解

    摘要:我們再來回顧下文首提出的這個比較運算,首先為對象,則調用函數將其轉化為字符串對于右側的,首先會進行顯式類型轉換,將其轉化為。 JavaScript 運算符規則與隱式類型轉換詳解 從屬于筆者的現代 JavaScript 開發:語法基礎與工程實踐系列文章,主要探討 JavaScript 中令人迷惑的加減乘除與比較等常見運算中的規則與隱式類型轉換;本文中涉及的參考資料全部聲明在了JavaSc...

    snifes 評論0 收藏0
  • JavaScript 算符規則與隱式類型轉換詳解

    摘要:我們再來回顧下文首提出的這個比較運算,首先為對象,則調用函數將其轉化為字符串對于右側的,首先會進行顯式類型轉換,將其轉化為。 JavaScript 運算符規則與隱式類型轉換詳解 從屬于筆者的現代 JavaScript 開發:語法基礎與工程實踐系列文章,主要探討 JavaScript 中令人迷惑的加減乘除與比較等常見運算中的規則與隱式類型轉換;本文中涉及的參考資料全部聲明在了JavaSc...

    Kyxy 評論0 收藏0
  • javascript變量算符詳解

    摘要:代碼示例等號檢查,類型轉換后返回全等檢查,由于時類型,時類型,類型不同,返回關系運算符關系運算符執行的是比較運算,通常用于判斷兩個變量哪個大哪個小關系運算符都返回一個布爾值。邏輯或運輸符用雙豎線表示。 1.運算符 JavaScript中常見的運算符包含:賦值運算符、算數運算符、等性運算符、關系運算符、條件運算符、布爾運算符、邏輯運算符…… 1.賦值運算符 = 賦值運算符=,用于給某個變...

    Sourcelink 評論0 收藏0
  • 詳解js算符

    摘要:對象返回第二個操作數對象對象邏輯或與邏輯與操作相似,如果有一個操作數不是布爾值,邏輯或也不一定返回布爾值此時,它遵循下列規則如果第一個操作數是對象,則返回第一個操作數。無論這個值是什么數據類型,這個運算符都會返回一個布爾值。 加法運算符 如果算術運算的值不是數值,那么js后臺會先使用Number()轉型函數將其轉換為數值: var num = 1 + NaN;//NaN,只要有一個Na...

    Dean 評論0 收藏0

發表評論

0條評論

劉永祥

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<