JavaScript có 8 kiểu dữ liệu
- String
- Number
- Bigint
- Boolean
- Undefined
- Null
- Symbol
- Object
Kiểu dữ liệu đối tượng
- An object
- An array
- A date
// Numbers:
let length = 16;
let weight = 7.5;
// Strings:
let color = "Yellow";
let lastName = "Johnson";
// Booleans
let x = true;
let y = false;
// Object:
const person = {firstName:"John", lastName:"Doe"};
// Array object:
const cars = ["Saab", "Volvo", "BMW"];
// Date object:
const date = new Date("2022-03-25");
Ghi chú Một biến JavaScript có thể chứa bất kỳ loại dữ liệu nào. |
Khái niệm về kiểu dữ liệu
Trong lập trình, kiểu dữ liệu là một khái niệm quan trọng.
Để có thể thao tác trên các biến, điều quan trọng là phải biết về kiểu dữ liệu.
Nếu không có loại dữ liệu, máy tính không thể giải quyết vấn đề này một cách an toàn:
let x = 16 + "Volvo";
Việc thêm "Volvo" vào số 16 có ý nghĩa gì không? Nó sẽ tạo ra lỗi hay nó sẽ tạo ra kết quả?
JavaScript sẽ coi ví dụ trên là:
let x = "16" + "Volvo";
Ghi chú Khi thêm một số và một chuỗi, JavaScript sẽ coi số đó là một chuỗi. |
let x = 16 + "Volvo"; // 16Volvo
let x = "Volvo" + 16; // Volvo16
JavaScript đánh giá các biểu thức từ trái sang phải. Trình tự khác nhau có thể tạo ra kết quả khác nhau :
let x = 16 + 4 + "Volvo"; // 20Volvo
let x = "Volvo" + 16 + 4; // Volvo164
Trong ví dụ đầu tiên, JavaScript coi 16 và 4 là số cho đến khi đạt đến 'Volvo'.
Trong ví dụ thứ hai, vì toán hạng đầu tiên là một chuỗi nên tất cả các toán hạng đều được coi là chuỗi.
Kiểu trong JS là kiểu động (dynamic types)
JavaScript có các kiểu động (dynamic types). Điều này có nghĩa là cùng một biến có thể được sử dụng để chứa các loại dữ liệu khác nhau:
let x; // Now x is undefined
x = 5; // Now x is a Number
x = "John"; // Now x is a String
Chuỗi JS - JavaScript Strings
Chuỗi (hoặc văn bản) là một chuỗi ký tự như "John Doe".
Chuỗi được viết với dấu ngoặc kép. Bạn có thể sử dụng dấu ngoặc đơn hoặc dấu ngoặc kép:
let carName1 = "Volvo XC60"; // Using double quotes
let carName2 = 'Volvo XC60'; // Using single quotes
Bạn có thể sử dụng dấu ngoặc kép bên trong một chuỗi, miễn là chúng không khớp với dấu ngoặc kép xung quanh chuỗi:
// Single quote inside double quotes:
let answer1 = "It's alright";
// Single quotes inside double quotes:
let answer2 = "He is called 'Johnny'";
// Double quotes inside single quotes:
let answer3 = 'He is called "Johnny"';
Bạn sẽ tìm hiểu thêm về chuỗi trong những bài học sau. |
Số JS - JavaScript Numbers
Tất cả các số JavaScript được lưu trữ dưới dạng số thập phân (dấu phẩy động).
Số có thể được viết dưới dạng có hoặc không có số thập phân:
// With decimals:
let x1 = 34.00;
// Without decimals:
let x2 = 34;
Ký hiệu hàm mũ
Các số cực lớn hoặc cực nhỏ có thể được viết bằng ký hiệu khoa học (số mũ):
let y = 123e5; // 12300000
let z = 123e-5; // 0.00123
Ghi chú Hầu hết các ngôn ngữ lập trình đều có nhiều loại số: Số nguyên (integers): byte (8 bit), short (16 bit), int (32 bit), long (64 bit) Số thực (dấu phẩy động): float (32-bit), double (64-bit). Số Javascript luôn có một loại: double (dấu phẩy động 64 bit). Bạn sẽ tìm hiểu thêm về các con số trong bài học sau. |
Số nguyên lớn - JavaScript BigInt
Tất cả các số JavaScript được lưu trữ ở định dạng dấu phẩy động 64 bit.
JavaScript BigInt là một kiểu dữ liệu mới (ES2020) có thể được sử dụng để lưu trữ các giá trị số nguyên quá lớn để được biểu thị bằng Số JavaScript thông thường.
let x = BigInt("123456789012345678901234567890");
Bạn sẽ tìm hiểu thêm về BigInt sau trong bài học sau. |
JavaScript Booleans
Boolean chỉ có thể có hai giá trị: true
hoặc false
.
let x = 5;
let y = 5;
let z = 6;
(x == y) // Returns true
(x == z) // Returns false
Booleans thường được sử dụng trong xét điều kiện.
Bạn sẽ tìm hiểu thêm về booleans trong bài học sau. |
Mảng JS - JavaScript Arrays
Mảng JavaScript được viết bằng dấu ngoặc vuông []
.
Các mục của mảng được phân tách bằng dấu phẩy.
Đoạn mã sau khai báo (tạo) một mảng có tên là cars
, chứa ba mục (car names):
const cars = ["Saab", "Volvo", "BMW"];
Các chỉ mục mảng bắt đầu từ 0, có nghĩa là mục đầu tiên là [0], mục thứ hai là [1], …
Bạn sẽ tìm hiểu thêm về mảng trong bài học sau. |
Đối tượng JS - JavaScript Objects
Các đối tượng JavaScript được viết bằng dấu ngoặc nhọn {}
.
Thuộc tính đối tượng được viết dưới dạng cặp tên : giá trị (name : value), phân tách bằng dấu phẩy.
const person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
Đối tượng (người) trong ví dụ trên có 4 thuộc tính: firstName, LastName, age và eyeColor.
Bạn sẽ tìm hiểu thêm về các đối tượng trong bài sau. |
Toán tử typeof
Bạn có thể sử dụng toán tử typeof
của JavaScript để tìm kiểu biến JavaScript.
Toán tử typeof
trả về kiểu của biến hoặc biểu thức:
typeof "" // Returns "string"
typeof "John" // Returns "string"
typeof "John Doe" // Returns "string"
typeof 0 // Returns "number"
typeof 314 // Returns "number"
typeof 3.14 // Returns "number"
typeof (3) // Returns "number"
typeof (3 + 4) // Returns "number"
Bạn sẽ tìm hiểu thêm về typeof trong bài sau. |
Không xác định - Undefined
Trong JavaScript, một biến không có giá trị sẽ có giá trị không xác định. Kiểu của nó là undefined
.
let car; // Value is undefined, type is 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 không xác định (undefined
) . Kiểu cũng sẽ là undefined
.
car = undefined; // Value is undefined, type is undefined
Giá trị rỗng
Giá trị trống trong JavaScript là không có giá trị hoặc giá trị rỗng. Điều quan trọng là phải phân biệt giữa giá trị rỗng và giá trị không xác định (undefined
).
let car = ""; // The value is "", the typeof is "string"
- Giá trị của car
là chuỗi trống, tức là không có ký tự nào trong chuỗi đó.
- Kiểu dữ liệu của car
là string
(chuỗi).
Điều này có ý nghĩa là car
đang chứa một chuỗi trống.
Còn nếu bạn không gán giá trị nào cho biến, thì kiểu dữ liệu của biến đó sẽ là undefined
, và giá trị sẽ là giá trị không xác định. Ví dụ:
let bike; // Value is undefined, type is undefined
Trong trường hợp này, biến bike
có kiểu dữ liệu undefined
vì nó chưa được gán giá trị cụ thể.