JavaScript 是一種動(dòng)態(tài)類型的語言,它允許開發(fā)人員將一個(gè)變量賦值為任何類型的數(shù)據(jù),或者將一個(gè)變量重新賦值為其他類型的數(shù)據(jù),這就意味著 JavaScript 運(yùn)行時(shí)中存在一些常量,這些常量不會(huì)改變數(shù)據(jù)類型或值。本文將介紹一些 JavaScript 自身的常量。
首先,在 JavaScript 中有 6 個(gè)不可變的基本數(shù)據(jù)類型,分別為 undefined、null、布爾值(Boolean)、數(shù)字(Number)、字符串(String)和 Symbol。這些基本類型中,undefined 和 null 是原始值,而 Boolean、Number 和 String 是包裝對(duì)象,而 Symbol 是唯一的數(shù)據(jù)類型,用于生成一個(gè)獨(dú)一無二的值。
const PI = 3.141592653589793; // 聲明一個(gè)常量 PI console.log(PI); // 3.141592653589793 PI = 3.14; // TypeError: Assignment to constant variable.
另外一個(gè) JavaScript 的常量是 NaN,它代表非數(shù)字,當(dāng)使用一個(gè)不是數(shù)字的數(shù)據(jù)類型進(jìn)行數(shù)值運(yùn)算或表示數(shù)值時(shí),會(huì)返回 NaN。舉個(gè)例子:
const a = 10; console.log(Number("hello")); // NaN console.log(a + "hello"); // "10hello"
此外,JavaScript 還有兩個(gè)特殊的常量:Infinity 和 -Infinity,它們是數(shù)字類型的值,表示正無窮大和負(fù)無窮大。例如:
console.log(10 / 0); // Infinity console.log(-10 / 0); // -Infinity
最后一個(gè)常量是 globalThis,它為一個(gè)在所有環(huán)境中都存在的全局對(duì)象,它可以被用來獲取全局屬性,例如 setTimeout 和 console:
console.log(globalThis.setTimeout === window.setTimeout); // true console.log(globalThis.console === window.console); // true
在 JavaScript 中,使用常量可以提高代碼可讀性和可維護(hù)性,使程序員可以更加輕松地理解代碼。常量在聲明時(shí)必須初始化,且不能被重新賦值,否則將拋出 TypeError 異常。開發(fā)人員應(yīng)該盡可能使用常量來聲明不變的數(shù)據(jù),避免錯(cuò)誤地修改這些數(shù)據(jù)。