這一篇很快的說明 JavaScript 三種基礎的基別。
##》數字
JavaScript以具小數點的數字表示所有的數值資料,以下均是合法的數值寫法。
100
0.25
.123
1.23E6
以指數符號(e或是E)來表示一個數值亦合法。JavaScript中可表示的數值範圍最大值為 1.7976931348623157e+308,最小值則是5e-324,你可以透過Number物件的屬性來取得這兩個值,列舉如下表:
最大與最小值
|
語法
|
數字
|
最大值
|
Number.
MAX_VALUE
|
1.7976931348623157e+308
|
最小值
|
Number
.
MIN_VALUE
|
5e-324
|
來看以下的程式碼:
<script>
var x = 100;
var y = 1.02;
var z = 0.12;
var a = .135246;
var b = 2.123e6;
var c = 2.123E6;
var d = 4.1e-6;
//
console.log(x);
console.log(y);
console.log(z);
console.log(a);
console.log(b);
console.log(c);
//
console.log('最大可能值:' + Number.MAX_VALUE);
console.log('最小可能值:' + Number.MIN_VALUE);
</script>
其中的程式碼宣告了數個變數,並且設定了數種不同格式的數值,最後輸出指定的值,讀者請自比對以下的結果:
100
1.02
0.12
0.135246
2123000
0.0000041
最大可能值:1.7976931348623157e+308
最小可能值:5e-324
最大與最小值透過 Number 物件引用 MAX_VALUE 與 MIN_VALUE 取得。
關於數值資料,另外有兩個相關的屬性必須特別注意,NaN 表示「不是一個數字」的意思,可以用函式 isNaN() 判斷一個值是否為數字,考慮以下的程式碼:
<script>
var s = 'HTML5';
var x = 100;
console.log(isNaN(s));
console.log(isNaN(x));
</script>
第一行與第二行定義字串與數值資料變數,緊接著調用isNaN() 判斷是否這些變數「不是一個數字」,針對 s 變數,由於它是一個字串,所以回傳 true ,而 x 是數值,因此回傳 false 。另外一個變數是 Infinity,這個變數表示一個正無限值的結果,如果是負無限值,則以負號表示為 –Infinity ,以上述的 x 為例,它是一個 100 的值,如果將其除以 0 ,將回傳 Infinity 。
##》字串
字串型別用以表示文字資料,以 UTF-16 編碼Uniode 字元表示,在JavaScript中表示字串必須以單引號或是雙引號包含所要表示的字元,例如以下均表示字串:
var s0 = "HTML5";
var s1 = 'JavaScript';
var s2 = '';
無論單引號或是雙引號都必須成對,若其中沒有任何字元則為空字串。但是你可以將成對的單引號包在成對的雙引號裡面,形成巢狀式的結構,反之亦同,例如以下的字串:
var a ="HTML5='JavaScript'+'HTML'+'CSS'" ;
var b ='HTML5="JavaScript"+"HTML"+"CSS"' ;
這兩行均是合法的字串,依序將a與b輸出會得到以下的結果:
HTML5='JavaScript'+'HTML'+'CSS'
HTML5="JavaScript"+"HTML"+"CSS"
使用字串資料必須特別注意特定的字元,例如斷行,或是必須將引號視為單純的字元時,可以使用跳脫字元作表示,這是一個倒斜線(\),例如以下這一行:
var s ='HTML5=\nJavaScript+HTML+CSS'
其中的 s 變數儲存等號後方的字串,此字串內包夾的 \n 表示一個斷行符號,如果於控制檯輸出s會得到以下的結果:
HTML5=
JavaScript+HTML+CSS
考慮以下另外一個字串宣告:
var a ='HTML5='JavaScript'+'HTML'+'CSS''
其中的子字串,包含 'JavaScript' 、'CSS ' 與 'JavaScript' ,與外部字串同樣使用單引號,如此一來將導致衝突,若不以雙引號區隔標示,可以使用跳脫字元標示如下:
var a ='HTML5=\'JavaScript\'+\'HTML\'+\'CSS\''
將其中的 a 輸出,會得到以下的結果:
HTML5='JavaScript'+'HTML'+'CSS'
其它有數個特定的字元可以透過跳脫序列作表示。除了跳脫序列,一旦以單引號或是雙引號包覆便會被視為字串,既使其中包含了數字亦同,例如以下這一行程式碼:
var a = '100';
其中 a 所儲存的 100 是字串,會以字串格式進行程式運算。
##》布林值
布林型態只有兩個可能的值,由關鍵字 true 與 false 表示,通常運用於比較運算,例如以下這一行程式碼:
x==12
其中的 x 變數如果是 12 ,則這一行程式碼將回傳 true ,否則為 false 。你可以將任何值轉換成布林值,例如 0 或 null 轉換為布林值為 false ,而其它的數值轉換為布林值則為 true 。最常使用布林值的場合是各種敘述控制句,例如 if/else 。
瞭解資料型態之後,接下來還有 typeof() 與另外兩種特定的資料,以下進行很速的討論。
##》typeof()
你可以透過 typeof 檢視資料型別,例如 typeof(100) 將回傳 number ,以下的範例分別測試數種不同型別的資料。
<script>
var n0 = typeof (101);
var n1 = typeof (1.01);
var n2 = typeof ('101');
var n3 = typeof (true);
console.log(n0);
console.log(n1);
console.log(n2);
console.log(n3);
</script>
其中透過調用 typeof() 檢視數種資料型別,並回傳結果。
number
number
string
boolean
##》特殊值-null 與 undefined
null 與 undefined都表示值不存在,考慮以下的程式碼:
console.log(typeof(null));
console.log(typeof(undefined));
如果調用 typeof() 直接輸出兩者結果如下:
object
undefined
null 是一個物件(object),而 undefined 則是一個值。但這兩者在意義上並沒有太大的差別,通常在程式當中如果需要指定一個不存在的空值,使用 null 即可,例如:
var a = null ;
至於 undefined ,通常會在程式過程中發生非預期或空值錯誤時出現。