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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

js類(lèi)型轉(zhuǎn)換

js類(lèi)型轉(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為什么只會(huì)輸出2,不應(yīng)該是1和2都會(huì)輸出嗎?
查看完整描述

1 回答

?
FFIVE

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊

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

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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號(hào)

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