資料型別 |
說明 |
#null |
空值,表示非物件 |
undefined |
未定義的值,表示未賦值的初始化值 |
number |
數字,數學運算的值 |
string |
字串,表示訊息流 |
##boolean | 布林值,邏輯運算的值 |
Symbol | 表示獨一無二的值 |
1、Null 類型
Null 是一個只有一個值的特殊資料類型,表示一個「空」值,即不存在任何值,什麼都沒有,用來定義空物件指標。
使用typeof 運算子來檢視Null 的型別,會發現Null 的型別為Object
var a = null;
console.log(typeof a);
說明Null 其實使用屬於Object(物件)的一個特殊值。因此透過將變數賦值為 Null 我們可以建立一個空的物件。
2、Undefined 類型
Undefined 也是只有一個值的特殊資料類型,表示未定義。當我們宣告一個變數但未給變數賦值時,這個變數的預設值就是 Undefined。例如:
var num;
console.log(num); // 输出 undefined
在使用 typeof 運算子檢視未賦值的變數型別時,會發現它們的型別也是 undefined。對於未宣告的變量,使用typeof 運算子查看其類型會發現,未宣告的變數也是undefined,範例程式碼如下:
var message;
console.log(typeof message); // 输出 undefined
console.log(typeof str); // 输出 undefined
說明:null 、undefined的異同點:
相同點:都是一個值的資料型別;二者參與判斷時都回傳false;二者都沒有方法
不同點:
#(a )、null 是一個對象,而undefined 不是以個對象;
(b)、null 是一個關鍵字,undefined不是關鍵字;
(c)、null轉換為數字時為0,而undefined轉換為數字時是NaN;
(d)、typeof null返回'object',typeof undefined 返回'undefined';
alert(null == undefined) ;//true
#3、Number 類型
數值(Number)型別用來定義數值,JavaScript 中不區分整數和小數(浮點數),統一使用Number 類型表示,如下例所示:
var num1 = 123; // 整数
var num2 = 3.14; // 浮点数
注意:Number 類型所能定義的數值並不是無限的,JavaScript 中的Number 類型只能表示-(253 - 1) 到(253 -1) 之間的數值。
對於一些極大或極小的數,也可以用科學(指數)計數法來表示,如下例所示:
var y=123e5; // 123 乘以 10 的 5 次方,即 12300000
var z=123e-5; // 123 乘以 10 的 -5 次方,即 0.00123
另外,Number 類型中還有一些比較特殊的值,分別為Infinity、-Infinity 和NaN,其中
Infinity:用來表示正無窮大的數值,一般指大於1.7976931348623157e 308 的數;
-Infinity:用來表示負無窮大的數值,一般指小於5e-324 的數;
NaN:即非數值(Not a Number 的縮寫) ,用來表示無效或未定義的數學運算結構,例如0 除以0。
提示:如果某次計算的結果超出了JavaScript 中Number 類型的值範圍,那麼這個數字就會自動轉換為無限大,正數為Infinity,負數為-Infinity 。
在number中有一個奇葩,自身都不相等。即alert(NaN == NaN) // false;
但是NaN 是資料型,也就是說typeof NaN 的回傳值是'number';
#針對上面兩個特性,ECMAScript提供了一個函數isNaN(); 用途是判斷傳入的值能否轉換為數字,回傳值是boolean值。
空字串轉換為數字是0;
將一個值轉換為數字類型可以使用Number();
4、String 類型
字串(String)類型是一段以單引號''或雙引號""包裹起來的文本,例如'123'、"abc"。需要注意的是,單引號和雙引號是定義字串的不同方式,並不是字串的一部分。
定義字串時,如果字串中包含引號,可以使用反斜線\來轉義字串中的引號,或選擇與字串中不同的引號來定義字串,如下例所顯示:
var str = "Let's have a cup of coffee."; // 双引号中包含单引号
var str = 'He said "Hello" and left.'; // 单引号中包含双引号
var str = 'We\'ll never give up.'; // 使用反斜杠转义字符串中的单引号
5、Boolean 類型
#布林(Boolean)類型只有兩個值,true(真)或false(假),在做條件判斷時使用的比較多,您除了可以直接使用true 或false 來定義布林類型的變數外,還可以透過一些表達式來得到布林類型的值,例如:
var a = true; // 定义一个布尔值 true
var b = false; // 定义一个布尔值 false
var c = 2 > 1; // 表达式 2 > 1 成立,其结果为“真(true)”,所以 c 的值为布尔类型的 true
var d = 2 < 1; // 表达式 2 < 1 不成立,其结果为“假(false)”,所以 c 的值为布尔类型的 false
boolean類型主要用途是用於判斷;
正常情況下,只有這六種情況下會轉為false:空字串、null、undefined、0、-0、NaN
把一個陣列如何轉換為boolean值可以用兩中方法:Boolean()、 !!()
6、Symbol 類型
Symbol 是ECMAScript6 中引入的一種新的資料類型,表示獨一無二的值,Symbol 類型的值需要使用Symbol() 函數來生成,如下例所示:
var str = "123";
var sym1 = Symbol(str);
var sym2 = Symbol(str);
console.log(sym1); // 输出 Symbol(123)
console.log(sym2); // 输出 Symbol(123)
console.log(sym1 == sym2); // 输出 false :虽然 sym1 与 sym2 看起来是相同的,但实际上它们并不一样,根据 Symbol 类型的特点,sym1 和 sym2 都是独一无二的
【相关推荐:javascript视频教程、web前端】