Javascript的資料類型有很多種類
今天先介紹原始類型(Primitive Data Types)
let integerNumber = 42; // 整數
let floatNumber = 3.14; // 浮點數
顯示出近似值(比較大或比較小),console.log結果依據JavaScript引擎和環境的差異會有不同答案,以下只是範例
let a = 9999999999999991
console.log(a); // 9999999999999992
let b = 99999999999999911
console.log(b); // 99999999999999900
運算結果太大,會顯示出Infinity
let c = 99999 ** 99999
console.log(c); // Infinity
另外
NaN(Not-a-Number):名稱雖然是NaN,但是在Javascript是屬於數字
NaN通常由不合法的運算結果產生,可能的狀況如下
將非數字字符串轉換為數字:
parseInt("Hello")
0除以0:
0 / 0
數字除以非數字:
5 / "apple"
任何關連到NaN的數學運算結果通常也是NaN
console.log(NaN + 5); // NaN
console.log(NaN * 2); // NaN
NaN不等於任何值,也不等於自己(NaN)
console.log(NaN === NaN); // false
檢查NaN的方法如下
console.log(isNaN(NaN)); // true
console.log(isNaN(42)); // false
let greeting = "Hello, World!";
let isItTrue = true;
let isItFalse = false;
另外
true在數值上等於1
false在數值上等於0
console.log(true == 1); // 輸出 true
console.log(false == 0); // 輸出 true
但是使用===,結果完全不同,會比較數值,也比較數據類型
console.log(true === 1); // 輸出 false,因为它們的類型不同
console.log(false === 0); // 輸出 false,因为它們的類型不同
let undeclaredVariable;
console.log(typeof undeclaredVariable); //輸出 "undefined"
let emptyValue = null;
再次利用typeof,確認null是什麼類型,null是一個物件(object)空的物件,表示空的對象
console.log(typeof emptyValue); //輸出 "object"
特別提醒
符號是ECMAScript 6(ES6)引入的一種新的原始資料型態,它的主要特點是每個符號都是唯一的。具有唯一的特性、不可以重新賦值、另外可以自己對每個符號提供描述。
const a = Symbol();
const b = Symbol();
const c = Symbol();
console.log(a === c); // false
請記得符號唯一的特性,即使符號裡面的描述是一模一樣,也不會和其他符號相等。
const symbol7 = Symbol("mySymbol");
const symbol8 = Symbol("mySymbol");
console.log(symbol7 === symbol8); // false
不可以重新賦值
const symbol = Symbol("mySymbol");
symbol = Symbol("theirSymbol"); // 這將引發錯誤,無法重新賦值
當使用符號的時候,可以提供描述,描述可以幫助您理解符號的用途或含義,這對於代碼的可讀性和維護性很有幫助。
const namedSymbol = Symbol("This is a description");
對不同的符號提供描述
const info = Symbol("info");
const error = Symbol("error");