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

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

為什么('0'?'a':'b')的行為不同于('0'== true?'a':'b')

為什么('0'?'a':'b')的行為不同于('0'== true?'a':'b')

元芳怎么了 2019-11-27 10:57:10
為什么以下兩個語句的結(jié)果不同?('0' ? 'a' : 'b') /* -> 'a' */('0' == true ? 'a' : 'b') /* -> 'b' */jsFiddle測試用例編輯:我應(yīng)該補充一點,我懷疑將“ 0”第一條語句強制轉(zhuǎn)換為要比較的布爾值-這應(yīng)該與“'0'== true”完全相同,顯然這是不正確的。
查看完整描述

3 回答

?
慕娘9325324

TA貢獻(xiàn)1783條經(jīng)驗 獲得超4個贊

首先,為了完整性:


('0' ? 'a' : 'b') 

之所以為'a',是因為它'0'是一個非空字符串,其總值為true:


字符串:如果參數(shù)為空字符串(其長度為零),則結(jié)果為false;否則為false。否則結(jié)果為true。


現(xiàn)在到'0' == true。


這里將進行兩次類型轉(zhuǎn)換。我們可以在規(guī)范的第11.9.3節(jié)“抽象平等比較算法”中遵循這一要求。


操作數(shù)表示為x和y(x == y)。


在我們的例子中,x是一個字符串('0')和y一個布爾值(true)。因此,執(zhí)行步驟7:


如果Type(y)為布爾型,則返回比較結(jié)果x == ToNumber(y)。


將布爾值轉(zhuǎn)換為數(shù)字時,將進行以下轉(zhuǎn)換:


布爾值:如果參數(shù)為true,則結(jié)果為1。如果參數(shù)為false,則結(jié)果為+0。


現(xiàn)在我們有


'0' == 1

符合步驟5中的條件:


如果Type(x)為String,Type(y)為Number,則返回比較結(jié)果ToNumber(x)== y。


如何將字符串轉(zhuǎn)換為數(shù)字更為復(fù)雜,但是當(dāng)然也可以在規(guī)范中找到。


所以最后的比較是


0 == 1

這是false(步驟1. a。vi。)


查看完整回答
反對 回復(fù) 2019-11-27
?
紫衣仙女

TA貢獻(xiàn)1839條經(jīng)驗 獲得超15個贊

主要是因為JavaScript在真實性方面相當(dāng)不一致。但是答案是:

  1. 在這種情況下,“ 0”直接轉(zhuǎn)換為布爾值,而“ 0”(非空字符串)為true。

  2. 在這種情況下,不會進行任何轉(zhuǎn)換;字符串不等于布爾值。


查看完整回答
反對 回復(fù) 2019-11-27
  • 3 回答
  • 0 關(guān)注
  • 724 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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