Ở ES6, Javascript có 7 kiểu. Đáng chú ý, object gồm có 2 loại sub-type là array và function.
null, undefined, boolean, number, string, object, symbol (có từ ES6).
Đáng chú ý là nếu dùng hàm typeof null sẽ ra “object” và typeof function() sẽ ra “function”.
Nguồn: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Grammar_and_Types
Function cũng là sub-type của object nhưng check typeof ra “function”.
[code lang=”js”]
typeof function a(){ /* .. */ } === “function”; // true[/code]
Số phận đau khổ của JS. Đây thực chất là “di sản” của JS, không fix được, vì fix sẽ càng tạo ra nhiều lỗi hơn ở các code-base đã viết.
[js]
typeof null === “object”; // true
let a = []; //array
typeof a=== "object"; // true
let array = [];
typeof array;//object
typeof Symbol() === “object”; // true. Chú ý <strong>Symbol() S viết hoa</strong>.
[/js]
Trong JS, ta khai báo biến bằng cách var, let, hoặc const (hằng số). var, let và const có phạm vi (scope) sử dụng khác nhau.
Kết hợp với console.log(bien) để in ra giá trị. Quan sát ảnh sau.
Trong hàm console.log(a + b + c) thì + là phép cộng. “+” cũng dùng để nối chuỗi trong JS.
Tóm lại tổng kết ta có bảng sau:
Chú ý, trong js, kể cả các primitive type, trong trường hợp string và number, khởi tạo bình thường và kiểm tra typeof là “string” hoặc “number” vẫn dùng được các method dựng sẵn.
Cập nhật: null là một trường hợp hết sức đặc biệt. Quan sát ảnh sau:
Cập nhật: Đây là một cách phân loại khác theo Mozilla