亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Number()函數傳入Object時的情況

Number()函數傳入Object時的情況

qq_笑_17 2018-08-09 09:10:07
我在讀《Javascript高級程序設計》一書時,當讀到Number Type下對于Number()函數轉化規則一部分時,發現他有如下一個介紹:When applied to objects, the valueOf() method is called and thereturned value is converted based on the previously described rules.If that conversion results in NaN, the toString() method is called andthe rules for converting strings are applied.按照它的描述,我的理解是,對于一個Object,先執行Object的valueOf()函數,如果最后轉化結果是NaN,就再采用Object的toString()函數進行轉化。但是我做了如下實驗:var obj = {    a: "hello",    valueOf: function() {        return this.a;     },    toString: function() {        return 1;     } }Number(obj) // 結果:NaN所以是不是書里描述錯誤了,應該是如果沒有valueOf()函數的時候才執行toString(),否則只是執行valueOf()
查看完整描述

1 回答

?
繁花如伊

TA貢獻2012條經驗 獲得超12個贊

犀牛書里關于這個寫的是:傳入對象 先調用valueOf 如果返回的是對象的原始值,則把原始值轉成數字,如果不返回原始值,則調用tostring 。 你的例子valueof 返回的是字符串已經是原始值了,把這個字符串的原始值轉換成數字就是NaN并返回, 不需要再調用tostring 了。 不知道我理解的對不對

查看完整回答
反對 回復 2018-09-25
  • 1 回答
  • 0 關注
  • 624 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號