Categories JavaScript

Các kiểu dữ liệu trong JavaScript

Chuỗi, Số, Boolean, Mảng, Đối tượng.

Các kiểu dữ liệu trong JavaScript

Các biến JavaScript có thể nắm giữ nhiều kiểu dữ liệu khác nhau, chẳng hạn như: kiểu số, chuỗi, mảng, đối tượng và thêm một số cái khác:

var length = 87;     // kiểu số
var lastName = "Nguyễn";     // kiểu chuỗi
var cars = ["Saab", "Volvo", "BMW"];    // kiểu mảng
var x = {firstName:"Đức Anh", lastName:"Nguyễn"};    // kiểu đối tượng

Ý tưởng của kiểu dữ liệu

Trong lập trình, kiểu dữ liệu là một ý tưởng quan trọng.

Để linh hoạt và hiệu quả trong việc sử dụng biến, bạn cần hiểu một số thứ về kiểu dữ liệu.

Nếu không có kiểu dữ liệu, máy tính sẽ không chắc chắn khi giải quyết biểu thức bên dưới:

var x = 16 + "Volvo";

Tạo ra ý nghĩa gì khi cộng thêm “Volvo” vào 16 đây? Nó sẽ tạo ra một lỗi hay tạo ra một kết quả?

JavaScript sẽ sửa ví dụ trên thành:

var x = "16" + "Volvo";

Lưu ý: Khi cộng một số với một chuỗi, JavaScript sẽ xử lý số đó như một chuỗi.

Ví dụ:

var x = 16 + "Volvo"; // kết quả 16Volvo

var x = "Volvo" + 16; // kết quả Volvo16

JavaScript sẽ thực thi một biểu thức từ trái qua phải. Thứ tự khác nhau trong biểu thức có thể tạo ra những kết quả khác nhau:

JavaScript:

var x = 16 + 4 + "Volvo";

Kết quả:

20Volvo


JavaScript:

var x = "Volvo" + 16 + 4;

Kết quả:

Volvo164


Trong ví dụ đầu tiên, JavaScript xử lý 16 và 4 như là số, cho đến khi nó xử lý đến chuỗi “Volvo” thì nó sẽ chuyển 20 thành chuỗi, và ra kết quả là ghép chuỗi 20 và Volvo lại với nhau.

Trong ví dụ thứ hai, ngay toán hạng đầu tiên đã là chuỗi, do vậy tất cả các toán hạng tiếp theo được xử lý như là chuỗi.

JavaScript có các kiểu dữ liệu động

Kiểu dữ liệu động trong JavaScript có nghĩa là cùng một biến có thể sử dụng theo các cách khác nhau:

Ví dụ

var x;       // x không xác định
var x = 5;        // x là một số
var x = "Kiến càng";      // x là một chuỗi 

Chuỗi trong JavaScript

Một chuỗi là các ký tự liên tiếp giống như “Nguyễn Đức Anh”

Một chuỗi được viết trong dấu nháy. Bạn có thể sử dụng dấu nháy kép hoặc dấu nháy đơn:

Ví dụ:

var motorName = "Honda Wave";   // Sử dụng dấu nháy kép
var carName = 'Honda Wave';   // Sử dụng dấu nháy đơn

Bạn có thể dùng dấu nháy trong chuỗi, miễn là chúng không được giống với dấu nháy bao quanh chuỗi:

Ví dụ:

var answer = "Chúng tôi 'ổn'";  // dấu nháy đơn bên trong dấu nháy kép

var answer = "Họ gọi anh ý là 'thiên tài ngốc nghếch'";  // dấu nháy đơn bên trong dấu nháy kép

var answer = 'Đúng là "xứ sở thần tiên"';  // dấu nháy kép bên trong dấu nháy đơn

Kiểu số trong JavaScript

JavaScript chỉ có một kiểu số.

Các số có thể được viết kèm hoặc không kèm dấu chấm thập phân:

Ví dụ:

var x1 = 34.00;     // Viết số với dấu thập phân
var x2 = 34;        // Viết số không có dấu thập phân

Các số rất lớn hoặc rất nhỏ, có thể được viết theo kiểu khoa học (với ký hiệu số mũ):

Ví dụ:

var y = 789e5;      // 78900000
var z = 789e-5;     // 0.00789

Kiểu Boolean trong JavaScript

Boolean chỉ có hai giá trị: true hoặc false (đúng hoặc sai).

Ví dụ:

var x = true;
var y = false;

Booleans thường được dùng trong các bài kiểm tra điều kiện.

Bạn sẽ được học nhiều hơn về mệnh đề kiểm tra điều kiện trong các bài khác về javaScript.


Kiểu mảng trong JavaScript

Kiểu mảng trong JavaScript được viết với dấu ngoặc vuông.

Các phần tử trong mảng được tách ra với dấu phẩy.

Đoạn code dưới đây khai báo (tạo) một mảng tên là motor, bao gồm 3 phần tử (tên xe máy):

Ví dụ:

var motor = ["Honda", "Yamaha", "Suzuki"];

Chỉ số trong mảng đánh chỉ mục từ 0, có nghĩa là phần tử đầu tiên là [0],  phần tử thứ hai là [1] và cứ tiếp tục như thế.


Kiểu đối tượng trong JavaScript

Đối tượng trong JavaScript được viết với dấu ngoặc nhọn.

Thuộc tính của đối tượng được viết dưới dạng cặp tên:giá trị, được phân chia bởi dấu phẩy.

Ví dụ:

var person = {firstName:"Đức Anh", lastName:"Nguyễn", age:29, eyeColor:"black"};

Đối tượng con người trong ví dụ trên có 4 thuộc tính: Tên (firstName), Họ (lastName), Tuổi (age) và Màu mắt (eyeColor).

Toán tử typeof

Trong JavaScript, bạn có thể sử dụng toán tử typeof để biết kiểu của một biến nào đó:

Ví dụ:

typeof "Nguyễn"   // Trả về kiểu chuỗi
typeof 3.14  // Trả về kiểu số
typeof false   // Trả về một kiểu boolean
typeof [1,2,3,4]   // Trả về kiểu đối tượng
typeof {name:'Đức Anh', age:29} // Trả về kiểu đối tượng

Trong JavaScript, mảng là một kiểu đặc biệt của đối tượng. Vì vậy kiểu của [1,2,3,4] là đối tượng.

Không xác định

Trong JavaScript, một biến không có giá trị nào được gán vào thì người ta bảo nó có giá trị không xác định (underfined). Kiểu dữ liệu cũng là không xác định.

Ví dụ:

var person; // Giá trị là không xác định, kiểu là không xác định

Bất cứ biến nào cũng có thể bị làm rỗng bằng cách thiết lập giá trị về không xác định (undefined). Kiểu của nó sẽ là không xác định.

Ví dụ:

person = undefined;  // Giá trị là không xác định, kiểu là không xác định

Giá trị rỗng

Một giá trị rỗng không có gì để thực thi khi nó là không xác định (undefined).

Một chuỗi rỗng thì vẫn có cả giá trị và kiểu.

Ví dụ:

var car = "";  // Giá trị là "", kiểu là string

Null

Trong JavaScript null nghĩa là “không có gì cả”. Nó đại diện có cái gì đó không tồn tại.

Thật không may, trong JavaScript, các kiểu dữ liệu của null là một đối tượng (bạn có thể coi đó là một lỗi trong JavaScript khi để kiểu của null là đối tượng, đáng ra kiểu của nó nên là null.)

Bạn có thể làm rỗng một đối tượng bằng cách thiết lập nó về null:

Ví dụ:

var person = null;  // Giá trị là null, nhưng kiểu vẫn là một đối tượng

Bạn cũng có thể làm rỗng một đối tượng bằng cách thiết lập nó về không xác định (undefined):

Ví dụ:

var person = undefined;     // Giá trị là không xác định, kiểu là không xác định

Sự khác nhau giữa Không xác định và Null

typeof undefined   // không xác định
typeof null   // đối tượng
null === undefined  // sai (false)
null == undefined  // đúng (true)
Back to Top