第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

js類型轉(zhuǎn)換

js類型轉(zhuǎn)換

暮色呼如 2018-11-16 14:14:52
function a () {}a.toString = function(){    console.log(1)}a.valueOf = function(){    console.log(2)}a + '1' //2為什么只會輸出2,不應(yīng)該是1和2都會輸出嗎?
查看完整描述

1 回答

?
FFIVE

TA貢獻1797條經(jīng)驗 獲得超6個贊

我說的具體一點吧:valueOf和toString方法兩個方法一般只能調(diào)用一個,根據(jù)對象類型的不同,有不同的判斷順序。具體來說:
1.如果對象要轉(zhuǎn)換成字符串,會先檢測對象是否具有toString()方法,有這調(diào)用并返回原始值,再將這個值轉(zhuǎn)換成字符串。如果對象沒有toString()方法,或者這個方法不返回一個原始值。那么js會檢測該對象是否具有valueOf()方法,如果存在則調(diào)用,同樣調(diào)用并返回原始值,再將這個值轉(zhuǎn)換成字符串。如果對象valueOf和toString兩個方法都不存在,那么會拋出一個類型錯誤異常。
2.如果對象要轉(zhuǎn)換成數(shù)字,那么會檢測是否具有valueOf()方法,如果沒有再檢測toString()方法,具體原理與上面相同。
3.對于所有非日期對象來說,對象到原始值的轉(zhuǎn)換基本上是對象到數(shù)字的轉(zhuǎn)換,所有都是優(yōu)先調(diào)用valueof().如果是日期對象,則使用對象到字符串的轉(zhuǎn)換模式。
具體到你這道題,a不是日期對象,優(yōu)先調(diào)用valueof()方法,成功轉(zhuǎn)換后自然不會再調(diào)用toString()方法了。

查看完整回答
反對 回復(fù) 2018-12-13
  • 1 回答
  • 0 關(guān)注
  • 477 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號