? ? 我相信對(duì)于大多數(shù)新手加酵,剛?cè)腴T(mén) JavaScript 的同學(xué)來(lái)說(shuō),類型轉(zhuǎn)換無(wú)疑是最令人頭疼的問(wèn)題了(也包括我自己)。在 JavaScript 的代碼執(zhí)行過(guò)程中毕源,會(huì)根據(jù)需要進(jìn)行自動(dòng)類型轉(zhuǎn)換髓帽,這時(shí)候就需要看我們對(duì)表達(dá)式的類型轉(zhuǎn)換的理解了。不同于 Java脑豹、c++ 等等郑藏,JavaScript 在聲明變量時(shí),并不需要對(duì)變量的類型進(jìn)行聲明瘩欺,而是由賦給變量的值決定必盖。在 JavaScript 中,提供了幾種常用的基本數(shù)據(jù)類型:
1俱饿、undefined (未定義類型)
2歌粥、string (字符串類型)
3、number (數(shù)值類型)
4拍埠、Boolean (布爾類型)
5失驶、null (空類型)
一、typeof 運(yùn)算符枣购;
引用數(shù)據(jù)類型這里暫不做介紹嬉探,另外,我們可以根據(jù) typeof 運(yùn)算符來(lái)判斷一個(gè)值或變量究竟屬于哪種數(shù)據(jù)類型棉圈。語(yǔ)法格式如下:
語(yǔ)法:
? ? ? ? typeof (變量或值)
其返回結(jié)果為以下幾種:
1涩堤、undefined :如果變量是 undefined 類型的,則返回 undefined 類型的結(jié)果分瘾;
2胎围、string :如果變量是 string 類型的,則返回 string 類型的結(jié)果
3德召、number :如果變量是 number 類型的白魂,則返回 number 類型的結(jié)果
4、Boolean :如果變量是 Boolean 類型的上岗,則返回 Boolean 類型的結(jié)果
5福荸、object :如果變量是 null 類型,或者變量是一種引用類型液茎,如對(duì)象逞姿、函數(shù)、數(shù)組捆等,則返回 object 類型的結(jié)果滞造。
二、JavaScript 在代碼執(zhí)行的過(guò)程中栋烤,會(huì)根據(jù)需要進(jìn)行自動(dòng)類型轉(zhuǎn)換谒养,下面主要介紹 3 中數(shù)據(jù)類型之間的轉(zhuǎn)換規(guī)則:
? ? 1、 轉(zhuǎn)換為數(shù)值類型:
? ? ? ? (1)字符串類型轉(zhuǎn)數(shù)值類型:
? ? ? ? ? ? ? ? -? 如果存數(shù)字的字符串,則直接將其轉(zhuǎn)換為數(shù)字买窟;
? ? ? ? ? ? ? ? - 如果字符串中有非數(shù)字的內(nèi)容丰泊,則轉(zhuǎn)換為 NaN;
? ? ? ? ? ? ? ? -?如果字符串是一個(gè)空串 或者是一個(gè)空格的字符 ,返回的值是0始绍。
? ? ? ? ?(2)空類型轉(zhuǎn)為數(shù)值型:0瞳购;
? ? ? ? ?(3)布爾類型轉(zhuǎn)數(shù)值型:如果是 true,則為 1亏推;如果是 false 学赛,則為 0 ;
? ? ? ? ?(4)undefined 轉(zhuǎn)數(shù)值型:NaN;
? ? 2吞杭、 轉(zhuǎn)換為布爾類型:
? ? ? ? ? ? (1)字符串類型轉(zhuǎn)布爾類型 :若其長(zhǎng)度為 0 盏浇,則結(jié)果為 false,否則為 true芽狗;
? ? ? ? ? ? (2)空類型轉(zhuǎn)布爾類型:false
? ? ? ? ? ? ?(3)數(shù)值類型轉(zhuǎn)布爾類型:若其值為 0 或者 NaN 绢掰,則結(jié)果為 false ,否則為true童擎;
? ? ? ? ? ? ?(4)undefined 轉(zhuǎn)布爾類型:false 滴劲;
? ? 3、轉(zhuǎn)換為字符串類型:
? ? ? ? ? ? (1)數(shù)值型轉(zhuǎn)字符串型: NaN柔昼、0 或者與數(shù)值相對(duì)應(yīng)的字符串哑芹;
? ? ? ? ? ? (2)空類型轉(zhuǎn)字符串型:"null" ;
? ? ? ? ? ? (3)布爾類型轉(zhuǎn)字符串型 :若其值為 true 捕透,則結(jié)果為 "true" ,若其值為 false 碴萧,則結(jié)果為 "false"乙嘀;
? ? ? ? ? ? (4)undefined 轉(zhuǎn)換為字符串類型:"undefined";