javascript基礎(chǔ)之?dāng)?shù)據(jù)類型詳解
1.數(shù)據(jù)類型
1.1 為什么需要數(shù)據(jù)類型
在計算機(jī),不同的數(shù)據(jù)所占的存儲空間是不同的,為了便于把數(shù)據(jù)分成所需內(nèi)存大小不同的數(shù)據(jù),充分利用存儲空間,于是定義了不同的數(shù)據(jù)類型。
1.2 變量的數(shù)據(jù)類型
JavaScript是一種弱類型或者說動態(tài)語言,這意味著不用提前聲明變量的數(shù)據(jù)類型,在程序運行的過程中,類型會被自動確定。(js的變量類型是只有在程序在運行過程中,根據(jù)等號右邊的值的數(shù)據(jù)類型來確定的)
var age = 10; //這是一個數(shù)字型 var myName = 'lili'; //這是一個字符串類型數(shù)據(jù)
1.3 數(shù)據(jù)類型分類
JS把數(shù)據(jù)類型分為兩類:
簡單數(shù)據(jù)類型(Number,String,Boolean,Undefined,Null)復(fù)雜數(shù)據(jù)類型(object)
2. 簡單數(shù)據(jù)類型(基本數(shù)據(jù)類型)
JavaScript中的簡單數(shù)據(jù)類型及其說明如下:
| 簡單數(shù)據(jù)類型 | 說明 | 默認(rèn)值 |
|---|---|---|
| Number | 數(shù)字型,包含數(shù)值型和浮點型,如 20, 0.12 | 0 |
| Boolean | 布爾型,如true、false等價于1和0 | false |
| String | 字符串類型,字符串帶引號 | " " |
| Undefined | var a;聲明了變量a但是沒有給值,此時a=undefined | undefined |
| Null | var a = null;聲明了變量為空值 | null |
2.1 數(shù)字型Number
1. 數(shù)字型進(jìn)制
常見進(jìn)制二進(jìn)制、八進(jìn)制、十進(jìn)制、十六進(jìn)制
八進(jìn)制數(shù)字序列范圍:0~7 以0開頭
十六進(jìn)制數(shù)字序列范圍:0~9及A~F 以0x開頭
2.數(shù)字型范圍
JavaScript中數(shù)值的最大和最小值
alert(Number.MAX_VALUE); //1.7976931348623157e+308 alert(Number.MIN_VALUE); //5e-324
- infinity,代表無窮大,大于任何數(shù)據(jù)
- -infinity,代表無窮小,小于任何數(shù)據(jù)
- NaN,Not a number,代表一個非數(shù)值
isNaN() 這個方法用來判斷非數(shù)字,并且返回一個值,如果是數(shù)字,則返回是false,如果不是數(shù)字,則返回true。
2.2 字符串型 String
1.字符串轉(zhuǎn)義符
轉(zhuǎn)義符都是以 \ 開頭的,常用的轉(zhuǎn)義符及其說明如下:
轉(zhuǎn)義符解釋說明\n
換行符 newline的意思
| 轉(zhuǎn)義符 | 解釋說明 |
| \n |
換行符 newline的意思 |
| \\ | 斜杠\ |
| \' | ' 單引號 |
| \" | " 雙引號 |
| \t | tab 縮進(jìn) |
| \b | 空格,b是blank |
2.字符串長度
通過字符串的 length 屬性可以獲取整個字符串的長度
var myname = 'my name is andy'; console.log(myname.length);
2.3 布爾型 Boolean
布爾值有兩個值:true和false,其中true表示真,而false表示假
布爾值和數(shù)字型相加時,true的值為1,false的值為0.
console.log(true + 1); //2 console.log(false + 1); //1
3.數(shù)據(jù)類型轉(zhuǎn)換
3.1轉(zhuǎn)換為字符串
| 方式 | 說明 | 案例 |
|---|---|---|
| toString() | 轉(zhuǎn)成字符串 |
var num = 1; alert(num.toString()); |
| String()強(qiáng)制轉(zhuǎn)換 | 轉(zhuǎn)成字符串 |
var num = 1; alert(String(num)); |
| 加號拼接字符串 | 和字符串拼接的結(jié)果都是字符串 |
var num = 1; alert(num+"我是字符串"); |
3.2 轉(zhuǎn)換為數(shù)字型
| 方式 | 說明 | 案例 |
|---|---|---|
| parseInt(string)函數(shù) | 將string類型轉(zhuǎn)換為整數(shù)數(shù)值型 | parseInt('18') |
| parseFloat(string)函數(shù) | 將string類型轉(zhuǎn)換為浮點數(shù)數(shù)值型 | parseFloat('18.88') |
| Number()強(qiáng)制轉(zhuǎn)換函數(shù) | 將string類型轉(zhuǎn)換為數(shù)值型 | Number('18') |
| js隱式轉(zhuǎn)換(- * /) | 利用算數(shù)隱式轉(zhuǎn)換為數(shù)值型 | '14'-0 |
number() // 轉(zhuǎn)換為數(shù)字型 number(‘10') // 10 number(‘a(chǎn)bc') // NaN number(true) // 1 number(false) // 0 number(null) // 0 number(undefined) // NaN
parseInt() // 轉(zhuǎn)為數(shù)字,向下取整 //從被轉(zhuǎn)換的數(shù)據(jù)中,從前往后獲取整數(shù),找到一個就不會再找了,只找整數(shù)開頭的 代碼: parseInt(‘12.345') // 12 parseInt(‘12abc') // 12 parseInt(‘a(chǎn)bc12') // NaN parseInt(true) // NaN parseInt(false) // NaN parseInt(undefined) // NaN parseInt(null) // NaN 注:這些字符必須帶有數(shù)字且數(shù)字開頭,不然全是NaN
parseFloat() // 轉(zhuǎn)為數(shù)字,整數(shù),小數(shù) 代碼: parseFloat(‘12.345') // 12.345 parseFloat(‘12.345abc') // 12.345 parseFloat(‘a(chǎn)bc12.345') // NaN parseFloate(true) // NaN parseFloat(false) // NaN parseFloat(undefined) // NaN parseFloat(null) // NaN 注:這些字符必須帶有數(shù)字且數(shù)字開頭,不然全是NaN
隱式轉(zhuǎn)換
1.當(dāng) + 左右兩邊有一個是字符串的時候,另一個也會悄悄轉(zhuǎn)成字符串,進(jìn)行拼接
2.數(shù)學(xué)運算符號會將左右兩邊都轉(zhuǎn)成數(shù)字進(jìn)行算數(shù)運算 - 當(dāng)左右兩邊有一個是字符串的時候,+號就會拼接,當(dāng)左右兩邊沒有一個字符串,+也可以將左右兩邊轉(zhuǎn)成數(shù)字
3.當(dāng)比較運算符左右兩邊有一個是數(shù)字的話,另一個也會悄悄轉(zhuǎn)成數(shù)字進(jìn)行大小比較
3.3 轉(zhuǎn)換為布爾型
代表空、否定的值會被轉(zhuǎn)換為false,如''、0、NaN、null、undefined其余的值被轉(zhuǎn)換為true字符串轉(zhuǎn)布爾類型,空字符串是false,其他都是true
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
在javascript中關(guān)于節(jié)點內(nèi)容加強(qiáng)
走出JavaScript初學(xué)困境—js初學(xué)
寫給想學(xué)習(xí)Javascript的朋友一點學(xué)習(xí)經(jīng)驗小結(jié)

