js隱式轉(zhuǎn)換的規(guī)則_第1頁
js隱式轉(zhuǎn)換的規(guī)則_第2頁
js隱式轉(zhuǎn)換的規(guī)則_第3頁
js隱式轉(zhuǎn)換的規(guī)則_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、js隱式轉(zhuǎn)換的規(guī)則隱式轉(zhuǎn)換介紹:在js中,當(dāng)運(yùn)算符在運(yùn)算時,如果兩邊數(shù)據(jù)不統(tǒng)一,CPU就無法計算,這時我們編譯器會自動將運(yùn)算符兩邊的數(shù)據(jù)做一個數(shù)據(jù)類型轉(zhuǎn)換,轉(zhuǎn)成樣的數(shù)據(jù)類型再計算。這種無需程序員手動轉(zhuǎn)換,而由編譯器自動轉(zhuǎn)換的方式就稱為隱式轉(zhuǎn)換。例如1>"0"這行代碼在js中并不會報錯,編譯器在運(yùn)算符時會先把右邊的"0"轉(zhuǎn)成數(shù)字0'然后在比較大小js中的不同的數(shù)據(jù)類型之間的比較轉(zhuǎn)換規(guī)則如下:1.對象和布爾值比較對象和布爾值進(jìn)行比較時,對象先轉(zhuǎn)換為字符串,然后再轉(zhuǎn)換為數(shù)字,布爾值直接轉(zhuǎn)換為數(shù)字2. 對象和字符串比較對象和字符串進(jìn)行比較時,對象轉(zhuǎn)

2、換為字符串,然后兩者進(jìn)行比較。3. 對象和數(shù)字比較對象和數(shù)字進(jìn)行比較時,對象先轉(zhuǎn)換為字符串,然后轉(zhuǎn)換為數(shù)字,再和數(shù)字進(jìn)行比較。1=1;/true對象先轉(zhuǎn)換為字符串再轉(zhuǎn)換為數(shù)字,二者再比較1=>T=>1所以結(jié)果為true4. 字符串和數(shù)字比較字符串和數(shù)字進(jìn)行比較時,字符串轉(zhuǎn)換成數(shù)字,二者再比較。1=1/true5. 字符串和布爾值比較字符串和布爾值進(jìn)行比較時,二者全部轉(zhuǎn)換成數(shù)值再比較。1=true;/true6. 布爾值和數(shù)字比較布爾值和數(shù)字進(jìn)行比較時,布爾轉(zhuǎn)換為數(shù)字,二者比較。true=1/true:媾妙汝:竦型眾矽総媾妙$総:$:$:$:$:$:$:$:$:$:$:$:$:$:$

3、:$:$:$:$:$:$:$:$:$:$:$:$:-::W:®::W:®:-:W*:-::W:®:-::W:®:-::W:®:-::W:g:;案列:字符串連接符與算術(shù)運(yùn)算符隱式轉(zhuǎn)換規(guī)則混淆如:consoleog(1+'true')/1trueconsoleog(1+true)/2consoleog(1+undefined)/NaNconsoleog(1+null)/1$:$:<S-S-;S-m原理分析:1、將字符串連接符+:會把其他數(shù)據(jù)類型調(diào)用String()返回專場字符串然后拼接。2、算術(shù)運(yùn)算符+:會把其他數(shù)據(jù)類型調(diào)用N

4、umber()方法轉(zhuǎn)成數(shù)字后在做加法計算。consoleog(1+'true')/Itrue上面的+是字符串連接符:String(1)+'true'='Itrue'。consoleog(1+true)/2上面的+是算術(shù)運(yùn)算符:1+Number(true)=1+1=2。console.log(1+undefined)/NaN上面的+是算術(shù)運(yùn)算符:1+Number(undefined)=1+NaN=NaN。consoleog(1+null)上面的+是算術(shù)運(yùn)算符:1+Number(null)=1+0=1關(guān)系運(yùn)算符:會把其他數(shù)據(jù)類型轉(zhuǎn)換成number之后

5、再比較關(guān)系console.log('2'>10)/fasleconsole.log('2'>'10')/trueconsoleog('abc'>'b')/falseconsoleog('abc'>'aad')/trueconsole.log(NaN=NaN)/falseconsoleog(undefined=null)/truenull=null/truenull=null/trueundefined=undefined/trueundefined=undef

6、ined/true原理分析:當(dāng)關(guān)系運(yùn)算符兩邊有一邊是字符串的時候,會將其他類型數(shù)據(jù)使用Number()轉(zhuǎn)換,然后比較。console.log('2'>1)/falseNumber('2')>10=>2>10=>false當(dāng)關(guān)系運(yùn)算符兩邊都是字符串的時候,此時同時轉(zhuǎn)成Number然后比較關(guān)系。此時并不是按照Number()的形式轉(zhuǎn)成數(shù)字,而是按照字符串對應(yīng)的nuicode編碼來轉(zhuǎn)成數(shù)字。使用這個方法可以查看字符的unicode編碼:字符串的charCodeAt()consoleog('2'>'10'

7、;)/true'2'.charCodeAt()>'10'.charCodeAt()多個字符串從左往右一次比較console.log('abc'>'b')/false先比較'a'和'b','a'與b不相等直接出結(jié)果console.log('abc'>'aab')/true先和a和a比較,兩者相等,則繼續(xù)比較。復(fù)雜數(shù)據(jù)類型隱式轉(zhuǎn)化是先轉(zhuǎn)String,在轉(zhuǎn)number運(yùn)算先用T.luf()方琵址舉JP站施*靜呂用r.oSirinOH為岸申TtrintNiUftbrf缶勺;類申11詵計字nusher復(fù)雜數(shù)據(jù)類型隱式轉(zhuǎn)化consoleog(1,2='1,2')/trueconsoleog(1,2='1,2')/false邏輯非隱式轉(zhuǎn)換與關(guān)系運(yùn)算符隱式轉(zhuǎn)換搞混淆=0/true=0/false!=0/true!=0/false=!/true=/false=!/false=/false原理分析:1、關(guān)系運(yùn)算符:將其他數(shù)據(jù)類型轉(zhuǎn)成數(shù)字2、邏輯非:將其他數(shù)據(jù)類型使用Boolean()轉(zhuǎn)成布類型以下八種情況轉(zhuǎn)為布爾類型false類型:0,-0,NaN,undefined,null,'',fals

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論