Kiểu JavaScript
Trong JavaScript có 5 loại dữ liệu khác nhau có thể chứa các giá trị:
-
string
-
number
-
boolean
-
object
-
function
Có 6 loại đối tượng:
-
Object
-
Date
-
Array
-
String
-
Number
-
Boolean
Và 2 kiểu dữ liệu không chứa giá trị:
-
null
-
undefined
Kiểu toán tử
Bạn có thể sử dụng toán tử typeof
để tìm kiểu dữ liệu của biến JavaScript.
Ví dụ
typeof "John"
// Returns "string"
typeof 3.14
// Returns "number"
typeof NaN
// Returns "number"
typeof false
// Returns "boolean"
typeof [1,2,3,4] // Returns
"object"
typeof {name:'John', age:34}
// Returns "object"
typeof new Date()
// Returns "object"
typeof function () {} // Returns
"function"
typeof myCar
// Returns "undefined" *
typeof null
// Returns "object"
Hãy tự mình thử »Xin vui lòng quan sát:
- Kiểu dữ liệu của NaN là số
- Kiểu dữ liệu của mảng là đối tượng
- Kiểu dữ liệu của một ngày là đối tượng
- Kiểu dữ liệu null là đối tượng
- Kiểu dữ liệu của biến không xác định là không xác định *
- Kiểu dữ liệu của biến chưa được gán giá trị cũng không được xác định *
Bạn không thể sử dụng typeof
để xác định xem đối tượng JavaScript có phải là một mảng (hay một ngày) hay không.
Dữ liệu nguyên thủy
Giá trị dữ liệu nguyên thủy là một giá trị dữ liệu đơn giản không có thuộc tính và phương thức bổ sung.
Toán typeof
có thể trả về một trong các kiểu nguyên thủy sau:
-
string
-
number
-
boolean
-
undefined
Ví dụ
typeof "John" // Returns
"string"
typeof 3.14 // Returns
"number"
typeof true // Returns
"boolean"
typeof false // Returns
"boolean"
typeof x
// Returns "undefined" (if x has no value)
Hãy tự mình thử »Dữ liệu phức tạp
Toán typeof
có thể trả về một trong hai kiểu phức tạp:
-
function
-
object
Toán tử typeof
trả về "đối tượng" cho các đối tượng, mảng và null.
Toán typeof
không trả về "đối tượng" cho hàm.
Ví dụ
typeof {name:'John', age:34} // Returns "object"
typeof [1,2,3,4]
// Returns "object" (not "array", see note below)
typeof null // Returns
"object"
typeof function myFunc(){} // Returns "function"
Hãy tự mình thử » Toán tử typeof
trả về " object
" cho mảng vì trong JavaScript mảng là đối tượng.
Kiểu dữ liệu của typeof
Toán tử typeof
không phải là một biến. Nó là một nhà điều hành. Toán tử (+ - * / ) không có bất kỳ kiểu dữ liệu nào.
Tuy nhiên, toán tử typeof
luôn trả về một chuỗi (chứa kiểu toán hạng).
Thuộc tính hàm tạo
Thuộc tính constructor
trả về hàm khởi tạo cho tất cả các biến JavaScript.
Ví dụ
"John".constructor
// Returns function String() {[native code]}
(3.14).constructor
// Returns function Number() {[native code]}
false.constructor // Returns
function Boolean() {[native code]}
[1,2,3,4].constructor
// Returns function Array() {[native code]}
{name:'John',age:34}.constructor
// Returns function Object() {[native code]}
new Date().constructor
// Returns function Date() {[native code]}
function () {}.constructor // Returns
function Function(){[native code]}
Hãy tự mình thử » Bạn có thể kiểm tra thuộc tính constructor để tìm hiểu xem một đối tượng có phải là Array
hay không (có chứa từ "Mảng"):
Ví dụ
function isArray(myArray) {
return myArray.constructor.toString().indexOf("Array") > -1;
}
Hoặc đơn giản hơn, bạn có thể kiểm tra xem đối tượng có phải là hàm Array hay không:
Bạn có thể kiểm tra thuộc tính constructor để tìm hiểu xem một đối tượng có phải là Date
hay không (chứa từ "Ngày"):
Ví dụ
function isDate(myDate) {
return myDate.constructor.toString().indexOf("Date") > -1;
}
Hoặc đơn giản hơn, bạn có thể kiểm tra xem đối tượng có phải là hàm Date hay không:
Không xác định
Trong JavaScript, một biến không có giá trị sẽ có giá trị undefined
. Loại này cũng undefined
.
Bất kỳ biến nào cũng có thể được làm trống bằng cách đặt giá trị thành undefined
. Loại này cũng sẽ không được undefined
.
Giá trị trống
Một giá trị trống không liên quan gì đến undefined
.
Một chuỗi trống có cả giá trị pháp lý và loại.
Vô giá trị
Trong JavaScript null
là "không có gì". Nó được cho là một cái gì đó không tồn tại.
Thật không may, trong JavaScript, kiểu dữ liệu null
là một đối tượng.
Bạn có thể coi đó là một lỗi trong JavaScript khi typeof null
là một đối tượng. Nó phải là null
.
Bạn có thể làm trống một đối tượng bằng cách đặt nó thành null
:
Ví dụ
let person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
person = null; //
Now value is null,
but type is still an object
Hãy tự mình thử » Bạn cũng có thể làm trống một đối tượng bằng cách đặt nó thành undefined
:
Ví dụ
let person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
person = undefined; //
Now both value and type is undefined
Hãy tự mình thử »Sự khác biệt giữa Không xác định và Null
undefined
và null
có giá trị bằng nhau nhưng khác nhau về loại:
typeof undefined
// undefined
typeof null
// object
null === undefined
// false
null == undefined
// true
Hãy tự mình thử »Toán tử instanceof
Toán tử instanceof
trả về true
nếu một đối tượng là một thể hiện của đối tượng đã chỉ định:
Ví dụ
const cars = ["Saab", "Volvo", "BMW"];
(cars instanceof Array);
(cars instanceof Object);
(cars instanceof String);
(cars instanceof Number);
Hãy tự mình thử »Toán tử trống
Toán tử void đánh giá một biểu thức và trả về không xác định . Toán tử này thường được sử dụng để lấy giá trị nguyên thủy không xác định, sử dụng "void(0)" (hữu ích khi đánh giá một biểu thức mà không sử dụng giá trị trả về).
Ví dụ
<a href="javascript:void(0);">
Useless link
</a>
<a href="javascript:void(document.body.style.backgroundColor='red');">
Click me to change the background color of body to red
</a>
Hãy tự mình thử »