本篇文章給大家?guī)砹岁P(guān)于JavaScript中基本數(shù)據(jù)類型的相關(guān)知識,希望對大家有幫助。
JavaScript是弱類型腳本語言,聲明變量時無需指定變量的數(shù)據(jù)類型。JavaScript變量的數(shù)據(jù)類型是解釋時動態(tài)決定的。但是JavaScript的值保存在內(nèi)存中,也是數(shù)據(jù)類型的。JavaScript基本數(shù)據(jù)類型有如下五個
(1)數(shù)值類型
(2)布爾類型
(3)字符串類型
(4)Undefined類型
(5)Null類型
1. 數(shù)值類型
與強類型語言如C、Java不同,JavaScript的數(shù)值類型不僅包括所有的整形變量,也包括所有的浮點型變量。JavaScript語言中的數(shù)值都是以IEEE 754雙精度浮點數(shù)格式保存。JavaScript中的數(shù)值形勢非常豐富,完全支持用科學(xué)計數(shù)法表示??茖W(xué)計數(shù)法形如5.12e2代表5.12乘以10的2次方,5.12E2也代表5.12乘以10的2次方。
科學(xué)計數(shù)法中E為間隔符號,E不區(qū)分大小寫。
<script type="text/javascript"> // 顯式聲明變量a , b var a , b; // 給a , b使用科學(xué)記數(shù)法賦值,其值應(yīng)該為500 a = 5E2; b = 1.23e-3; // 使用警告提示框輸出變量a的值 alert(a + "n" + b); </script>
注意:數(shù)值直接量不要以0開頭。因為JavaScript支持八進制和十六進制。八進制以0開頭,十六進制以0x或0X開頭。
當(dāng)數(shù)值類型超出了其表述范圍時,將出現(xiàn)兩個特殊值:Infinity(正無窮大)和-Infinity(負(fù)無窮大。)
<script type="text/javascript"> // 定義x為最大的數(shù)值 var x = 1.7976931348623157e308; // 再次增加x的值 x = x + 1e292; // 使用警告框輸出x的值 alert(x); </script>
2. 字符串類型
JavaScript的子串富川必須用引號括起來,此處的引號既可以是單引號,也可以是雙引號。
var a = "12345678912aaa"; var a = '12345678912aaa';
注意:JavaScript和Java中的字符串主要有兩點區(qū)別:
-
(1)JavaScript中的字符串可以用單引號括起來;
-
(2)JavaScript中比較兩個字符串的字符序列是否相等使用 == 即可,無需使用equals()方法。
JavaScript以String內(nèi)建類表示字符串,String類里包含了一系列方法操作字符串,String類有如下基本方法和屬性操作字符串:
(1)charCodeAt() :返回字符串中特定索引處的字符所對應(yīng)的Unicode值
(2)Legth():返回字符串的長度
(3)toUpperCase() : 將stringObj中的小寫字母全部轉(zhuǎn)成大寫字母
(4)toLowerCase() :將stringObj中的大寫字母全部轉(zhuǎn)成小寫字母
(5)fromCharCode() :直接通過String類調(diào)用方法,將一系列Unicode值轉(zhuǎn)換成字符串
(6)indexOf() :返回字符串第一次出現(xiàn)的位置
(7)lastIndexOf() :返回字符串最后一次出現(xiàn)的位置
(8)subString() :截取stringObj從start開始,至end為止之前的所有字符,即包括start處的字符,但不包含end處的字符
(9)slice() :截取stringObj從start開始,到end為止之前的所有字符;即包括start處的字符,但不包括end處的字符。start與end均可為負(fù)值,當(dāng)為負(fù)值時,表示從最后一個字符算起的第n個字符,比如-1表示最后一個字符,-2表示倒數(shù)第二個字符。
(10)match() :在字符串內(nèi)檢索指定的正則表達式的匹配結(jié)果,該結(jié)果與regexp是否有指定全局標(biāo)志g有關(guān)
(11)split() :將separtor為為分隔,將stringObj分割成一個字符串?dāng)?shù)組。separator可以是字符串或者正則表達式,若為字符串,則以separator為分割符;弱separator為正則表達式,則以符合separator指定模式的字符串作為分隔符。
(12)replace() :將字符串中某個子串以特定字符串替代。
<script type="text/javascript"> // 定義字符串變量a var a = "abc中國"; // 獲取a的長度 var b = a.length; // 將系列的Unicode值轉(zhuǎn)換成字符串 var c = String.fromCharCode(97,98,99); // 輸出a的長度,以及字符串a(chǎn)在索引4處的字符和 // 對應(yīng)的Unicode值,以及c字符串變量的值 alert(b + "---" + a.charAt(4) + "---" + a.charCodeAt(4) + "---" + c); </script>
下面是一些常用的轉(zhuǎn)義字符
序 |
轉(zhuǎn)義字符 |
使用說明 |
---|---|---|
0 |
|
NUL 字符(u0000) |
1 |
b |
后退一格(Backspace)退格符(u0008) |
2 |
f |
換頁(Form Feed)(u000C) |
3 |
n |
換行(New Line)(u000A) |
4 |
r |
回車(Carriage Return)( u000D) |
5 |
t |
制表(Tab)水平制表符(u0009) |
6 |
' |
單引號(u0027) |
7 |
" |
雙引號(u0022) |
8 |
\ |
反斜線(Backslash)(u005C) |
9 |
v |
垂直制表符(u000B) |
10 |
xNN |
由兩位十六進制數(shù)值NN指定的Latin-1字符 |
11 |
uNNNNN |
由四位十六進制數(shù) NNNN指定的Unicode字符 |
12 |
NNN |
由一位到三位八進制數(shù)(1到377)指定的Latin-1字符。 ECMAScript v3不支持,不要使用這種轉(zhuǎn)義序列 |
3. 布爾類型
布爾類型的值只有兩個:true和false。布爾類型的值通常是邏輯運算的結(jié)果,或用于標(biāo)志對象的某種狀態(tài)。
<script type="text/javascript"> // 如果瀏覽器支持Cookie if (navigator.cookieEnabled) { alert("瀏覽器允許使用Cookie"); } // 如果瀏覽器不支持Cookie else { alert("瀏覽器禁用Cookie"); } </script>
4. Undefined 和 null
Undefined類型的值只有一個undefined,該值用于表示某個變量不存在,或者沒有為其分配值,也用于表示對象的屬性不存在。null用于表示變量的值為空。Undefined與null之間的差別比較微妙,總體而言,undefined表示沒有為變量設(shè)置值或?qū)傩圆淮嬖?,?/span>null表示變量是有值的,只是為其值為null。
但如果不進行精確比較,很多時候undefined和null本身就想等,即null==undefined將返回true。如果要精確區(qū)分null和undefined,應(yīng)該考慮使用精確等于符(===)
<script type="text/javascript"> // 聲明變量x , y var x , y = null; // 判斷x的值是否為空 if (x === undefined) { alert('聲明變量后默認(rèn)值為undefined'); } if (x === null) { alert('聲明變量后默認(rèn)值為null'); } // 判斷x(其值為undefined)是否與y(其值為null)相等 if (x == y) { alert("x(undefined)==y(null)"); } // 測試一個并不存在的屬性 if(String.xyz === undefined) { alert("不存在的屬性值默認(rèn)為undefined"); } </script>
5. 正則表達式
正則表達式的本質(zhì)是一種特殊的字符串,這種特殊字符允許使用“通配符”,因此一個正則表達式字符串可以匹配一批普通字符串。
元字符 名稱 匹配對象
-
. 點號 單個任意字符(除回車r、換行n、行分隔符u2028和段分隔符u2029外)
-
[] 字符組 列出的單個任意字符
-
[^] 排除型字符組 未列出的單個任意字符
-
? 問號 匹配0次或1次
-
* 星號 匹配0交或多次
-
+ 加號 匹配1次或多次
-
{min,max} 區(qū)間量詞 匹配至少min次,最多max次
-
^ 脫字符 行的起始位置
-
$ 美元符 行的結(jié)束位置
-
| 豎線 分隔兩邊的任意一個表達式
-
() 括號 限制多選結(jié)構(gòu)的范圍,標(biāo)注量詞作用的元素,為反向引用捕獲文本
-
1,2… 反向引用 匹配之前的第一、第二…組括號內(nèi)的表達式匹配的文本