成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

詳解加法運算符

劉永祥 / 1250人閱讀

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

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

基本轉換規(guī)則

運算雙方存在對象時

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

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

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

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

對象轉換成基本類型值

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

其它情況下,用valueOf()

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

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

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

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

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

數(shù)字加 boolean
var result = 10 + true // 11

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

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

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

數(shù)字加 null
var result = 8 + null // 8

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

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

undefined轉換成數(shù)字,得到NaN,因此加法的結果就是NaN。

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

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

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

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

{ // empty block }
+ []

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

參考:

詳解 JavaScript 的加法運算符

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

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

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

相關文章

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

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

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

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

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

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

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

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

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

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

    Dean 評論0 收藏0

發(fā)表評論

0條評論

劉永祥

|高級講師

TA的文章

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