JavaScript是弱型別指令碼語言,宣告變數時無需指定變數的資料型別。JavaScript變數的資料型別是解釋時動態決定的。但是JavaScript的值儲存在記憶體中,也是資料型別的。JavaScript基本資料型別有如下五個
(1)數值型別
(2)布林型別
(3)字串型別
(4)Undefined型別
(5)Null型別
與強型別語言如C、Java不同,JavaScript的數值型別不僅包括所有的整形變數,也包括所有的浮點型變數。JavaScript語言中的數值都是以IEEE 754雙精度浮點數格式儲存。JavaScript中的數值形勢非常豐富,完全支援用科學計數法表示。科學計數法形如5.12e2代表5.12乘以10的2次方,5.12E2也代表5.12乘以10的2次方。
科學計數法中E為間隔符號,E不區分大小寫。
<script type="text/javascript"> // 顯式宣告變數a , b var a , b; // 給a , b使用科學記數法賦值,其值應該為500 a = 5E2; b = 1.23e-3; // 使用警告提示框輸出變數a的值 alert(a + "\n" + b); </script>
注意:數值直接量不要以0開頭。因為JavaScript支援八進位制和十六進位制。八進位制以0開頭,十六進位制以0x或0X開頭。
當數值型別超出了其表述範圍時,將出現兩個特殊值:Infinity(正無窮大)和-Infinity(負無窮大。)
<script type="text/javascript"> // 定義x為最大的數值 var x = 1.7976931348623157e308; // 再次增加x的值 x = x + 1e292; // 使用警告框輸出x的值 alert(x); </script>
JavaScript的子串富川必須用引號括起來,此處的引號既可以是單引號,也可以是雙引號。
var a = "12345678912aaa"; var a = '12345678912aaa';
注意:JavaScript和Java中的字串主要有兩點區別:
(1)JavaScript中的字串可以用單引號括起來;
(2)JavaScript中比較兩個字串的字元序列是否相等使用 == 即可,無需使用equals()方法。
JavaScript以String內建類表示字串,String類裡包含了一系列方法操作字串,String類有如下基本方法和屬性操作字串:
(1)charCodeAt() :返回字串中特定索引處的字元所對應的Unicode值
(2)Legth():返回字串的長度
(3)toUpperCase() : 將stringObj中的小寫字母全部轉成大寫字母
(4)toLowerCase() :將stringObj中的大寫字母全部轉成小寫字母
(5)fromCharCode() :直接通過String類呼叫方法,將一系列Unicode值轉換成字串
(6)indexOf() :返回字串第一次出現的位置
(7)lastIndexOf() :返回字串最後一次出現的位置
(8)subString() :擷取stringObj從start開始,至end為止之前的所有字元,即包括start處的字元,但不包含end處的字元
(9)slice() :擷取stringObj從start開始,到end為止之前的所有字元;即包括start處的字元,但不包括end處的字元。start與end均可為負值,當為負值時,表示從最後一個字元算起的第n個字元,比如-1表示最後一個字元,-2表示倒數第二個字元。
(10)match() :在字串內檢索指定的正規表示式的匹配結果,該結果與regexp是否有指定全域性標誌g有關
(11)split() :將separtor為為分隔,將stringObj分割成一個字串陣列。separator可以是字串或者正規表示式,若為字串,則以separator為分割符;弱separator為正規表示式,則以符合separator指定模式的字串作為分隔符。
(12)replace() :將字串中某個子串以特定字串替代。
<script type="text/javascript"> // 定義字串變數a var a = "abc中國"; // 獲取a的長度 var b = a.length; // 將系列的Unicode值轉換成字串 var c = String.fromCharCode(97,98,99); // 輸出a的長度,以及字串a在索引4處的字元和 // 對應的Unicode值,以及c字串變數的值 alert(b + "---" + a.charAt(4) + "---" + a.charCodeAt(4) + "---" + c); </script>
下面是一些常用的跳脫字元
序 | 跳脫字元 | 使用說明 |
---|---|---|
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 | 由兩位十六進位制數值NN指定的Latin-1字元 |
11 | \uNNNNN | 由四位十六進位制數 NNNN指定的Unicode字元 |
12 | \NNN | 由一位到三位八進位制數(1到377)指定的Latin-1字元。 ECMAScript v3不支援,不要使用這種跳脫序列 |
布林型別的值只有兩個:true和false。布林型別的值通常是邏輯運算的結果,或用於標誌物件的某種狀態。
<script type="text/javascript"> // 如果瀏覽器支援Cookie if (navigator.cookieEnabled) { alert("瀏覽器允許使用Cookie"); } // 如果瀏覽器不支援Cookie else { alert("瀏覽器禁用Cookie"); } </script>
Undefined型別的值只有一個undefined,該值用於表示某個變數不存在,或者沒有為其分配值,也用於表示物件的屬性不存在。null用於表示變數的值為空。Undefined與null之間的差別比較微妙,總體而言,undefined表示沒有為變數設定值或屬性不存在,而null表示變數是有值的,只是為其值為null。
但如果不進行精確比較,很多時候undefined和null本身就想等,即null==undefined將返回true。如果要精確區分null和undefined,應該考慮使用精確等於符(===)
<script type="text/javascript"> // 宣告變數x , y var x , y = null; // 判斷x的值是否為空 if (x === undefined) { alert('宣告變數後預設值為undefined'); } if (x === null) { alert('宣告變數後預設值為null'); } // 判斷x(其值為undefined)是否與y(其值為null)相等 if (x == y) { alert("x(undefined)==y(null)"); } // 測試一個並不存在的屬性 if(String.xyz === undefined) { alert("不存在的屬性值預設為undefined"); } </script>
正規表示式的本質是一種特殊的字串,這種特殊字元允許使用「萬用字元」,因此一個正規表示式字串可以匹配一批普通字串。
元字元 名稱 匹配物件
. 點號 單個任意字元(除回車\r、換行\n、行分隔符\u2028和段分隔符\u2029外)
[] 字元組 列出的單個任意字元
[^] 排除型字元組 未列出的單個任意字元
? 問號 匹配0次或1次
* 星號 匹配0交或多次
+ 加號 匹配1次或多次
{min,max} 區間量詞 匹配至少min次,最多max次
^ 脫字元 行的起始位置
$ 美元符 行的結束位置
| 豎線 分隔兩邊的任意一個表示式
() 括號 限制多選結構的範圍,標註量詞作用的元素,為反向參照捕獲文字
\1,\2... 反向參照 匹配之前的第一、第二...組括號內的表示式匹配的文字
\0 NUL字元\u0000 [\b] 匹配退格符\u0008,不要與\b混淆 \t 製表符\u0009 \n 換行符\u000A \v 垂直製表符\u000B \f 換頁符\u000C \r 回車符\u000D \xnn 由十六進位制數nn指定的拉丁字元 \uxxxx 由十六進位制數xxxx指定的Unicode字元(\u4e00-\u9fa5代表中文) \cX 控制字元^X,表示ctrl-[X],其中的X是A-Z之中任一個英文字母,用來匹配控制字元
{n} 匹配n次 {n,m} 匹配至少n次,最多m次 {n,} 匹配至少n次 ? 相當於{0,1} * 相當於{0,} + 相當於{1,}
【相關推薦:】
以上就是你必須瞭解的JavaScript基本資料型別的詳細內容,更多請關注TW511.COM其它相關文章!