Hằng số sẵn có là các biến cứng đã mang giá trị mặc định. Trong ngôn ngữ nào cũng có. Bài này trung tâm giáo dục thường xuyên JS sẽ giới thiệu một số hằng số sẵn dùng trong Javascript.
Ở JS chúng ta có null, NaN, unidefined, infinity và một số hằng số khác.
Chú ý đây là các hằng số pre-defined, khác với hằng số chúng ta tự định nghĩa khi dùng kiểu khai cons
1. Đầu tiên là null
null is used for representing the intentional absence of an object value and is a primitive value. Unlike undefined, it is not a property of the global object.
Nó giống với undefined không hoàn toàn giống (identical).
[js]
null == undefined; // true
null === undefined; // false
typeof null; // ‘object’;
[/js]
//CHÚ Ý: The typeof null is ‘object’.
Để kiểm tra nếu một biến là null, so sánh ở dạng === (strict equality),
[js]
var a = null;
a === null; // true
[/js]
2. undefined và null
Chúng có vẻ giống nhau nhưng thực chất vẫn có sự khác biệt nhất định. undefined là một biến chưa gán giá trị khi compiler.
undefined là một giá trị dạng global, chưa gán giá trị. null là một object that indicates that a variable has been explicitly assigned “no value”.
[js]
typeof undefined === ‘undefined’
typeof null === ‘object'[/js]
Xem xét các ví dụ sau:
Khi declare một biến nhưng chưa gán giá trị, nó sẽ là undefined.
[js] let foo;
console.log(‘is undefined?’, foo === undefined);
// is undefined? true
//Accessing the value of a property that doesn’t exist let foo = { a: ‘a’ };
console.log(‘is undefined?’, foo.b === undefined);
// is undefined? true
//The return value of a function that doesn’t return a value function foo() { return; }
console.log(‘is undefined?’, foo() === undefined);
// is undefined? true
//The value of a function argument that is declared but has been omitted from the function call function foo(param) { console.log(‘is undefined?’, param === undefined); }
foo(‘a’); foo(); // is undefined? false // is undefined? true undefined is also a property of the global window object.
// Only in browsers console.log(window.undefined); // undefined window.hasOwnProperty(‘undefined’);
// true Version < 5 //Before ECMAScript 5 you could actually change the value of the window.undefined property to any other value potentially breaking everything [/js]
3) NaN ==> “Not a Number”
typeof là “number”
Nếu check
[js] NaN == NaN //false
NaN === NaN //false [/js]
Chú ý Hàm isNaN()
Hàm này check xem một biến có không phải là số hay không. Ví dụ:
[js]
isNaN(NaN) // true
isNaN(1) //false
isNaN(" ") // false vì convert sang 0, là số
[/js]
Chú ý operator trả về NaN
[js]
"b" *3// NaN
[/js]
4. Infinity và -Infinity
Đại diện số dương và âm không giới hạn.