JavaScript cơ bản
JavaScript & DOM
JavaScript & BOM
JavaScript nâng cao
Quảng cáo

Các kiểu dữ liệu JS

Trong hướng dẫn này, bạn sẽ tìm hiểu về các kiểu dữ liệu có sẵn trong JavaScript.

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

Các kiểu dữ liệu về cơ bản xác định loại dữ liệu nào có thể được lưu trữ và thao tác trong một chương trình.

Có sáu loại dữ liệu cơ bản trong Javascript có thể được chia thành ba loại chính: nguyên thủy - primitive  (hoặc chính - primary), hỗn hợp - composite (hoặc tham chiếu - reference) và các loại dữ liệu đặc biệt - special. Chuỗi, Số và Boolean là các kiểu dữ liệu nguyên thủy. Đối tượng, Mảng và Hàm (là tất cả các loại đối tượng) là các kiểu dữ liệu tổng hợp. Trong khi Undefined và Null là các kiểu dữ liệu đặc biệt.

Các kiểu dữ liệu nguyên thủy chỉ có thể chứa một giá trị tại một thời điểm, trong khi các kiểu dữ liệu tổng hợp có thể chứa các tập hợp giá trị và các thực thể phức tạp hơn. Hãy thảo luận chi tiết về từng người trong số họ.

Kiểu dữ liệu chuỗi

Kiểu dữ liệu chuỗi (string ) được dùng để biểu diễn dữ liệu dạng văn bản (tức là dãy các ký tự). Chuỗi được tạo bằng cách sử dụng dấu nháy đơn hoặc kép bao quanh một hoặc nhiều ký tự, như minh họa bên dưới:

Ví dụ

var a = 'Hi there!';  // using single quotes
var b = "Hi there!";  // using double quotes

Bạn có thể bao gồm các dấu ngoặc kép bên trong chuỗi miễn là chúng không khớp với các dấu ngoặc kép kèm theo.

Ví dụ

var a = "Let's have a cup of coffee."; // single quote inside double quotes
var b = 'He said "Hello" and left.';  // double quotes inside single quotes
var c = 'We\'ll never give up.';     // escaping single quote with backslash

Bạn sẽ tìm hiểu thêm về chuỗi trong chương chuỗi JavaScript .


Kiểu dữ liệu số

Kiểu dữ liệu số được sử dụng để biểu thị số dương hoặc số âm có hoặc không có vị trí thập phân hoặc số được viết bằng ký hiệu hàm mũ, ví dụ: 1.5e-4 (tương đương với 1.5x10 -4 ).

Ví dụ

var a = 25;         // integer
var b = 80.5;       // floating-point number
var c = 4.25e+6;    // exponential notation, same as 4.25e6 or 4250000
var d = 4.25e-6;    // exponential notation, same as 0.00000425

Kiểu dữ liệu Số cũng bao gồm một số giá trị đặc biệt là: Infinity, -InfinityNaN. Vô cực đại diện cho Vô cực toán học , lớn hơn bất kỳ số nào. Vô cực là kết quả của việc chia một số khác không cho 0, như minh họa bên dưới:

Ví dụ

alert(16 / 0);  // Output: Infinity
alert(-16 / 0); // Output: -Infinity
alert(16 / -0); // Output: -Infinity

Trong đó NaNđại diện cho một giá trị Not-a-Number đặc biệt . Đó là kết quả của một phép toán không hợp lệ hoặc không xác định, chẳng hạn như lấy căn bậc hai của -1 hoặc chia 0 cho 0, v.v.

Ví dụ

alert("Some text" / 2);       // Output: NaN
alert("Some text" / 2 + 10);  // Output: NaN
alert(Math.sqrt(-1));         // Output: NaN

Bạn sẽ tìm hiểu thêm về các con số trong chương số JavaScript .


Kiểu dữ liệu Boolean

Kiểu dữ liệu Boolean chỉ có thể chứa hai giá trị: truehoặc false. Nó thường được sử dụng để lưu trữ các giá trị như có ( true) hoặc không ( false), bật ( true) hoặc tắt ( false), v.v. như minh họa bên dưới:

Ví dụ

var isReading = true;   // yes, I'm reading
var isSleeping = false; // no, I'm not sleeping

Các giá trị Boolean cũng là kết quả của sự so sánh trong một chương trình. Ví dụ sau so sánh hai biến và hiển thị kết quả trong hộp thoại cảnh báo:

Ví dụ

var a = 2, b = 5, c = 10;
 
alert(b > a) // Output: true
alert(b > c) // Output: false

Bạn sẽ tìm hiểu thêm về các phép so sánh trong chương if/else của JavaScript .


Kiểu dữ liệu không xác định

Kiểu dữ liệu không xác định chỉ có thể có một giá trị-giá trị đặc biệt undefined. Nếu một biến đã được khai báo, nhưng chưa được gán giá trị, thì nó có giá trị undefined.

Ví dụ

var a;
var b = "Hello World!"
 
alert(a) // Output: undefined
alert(b) // Output: Hello World!

Kiểu dữ liệu Null

Đây là một kiểu dữ liệu đặc biệt khác chỉ có thể có một giá trị- giá trịnull. Một giá trị null có nghĩa là không có giá trị. Nó không tương đương với một chuỗi rỗng ( "") hoặc 0, nó đơn giản là không có gì.

Một biến có thể được làm trống một cách rõ ràng về nội dung hiện tại của nó bằng cách gán cho nó giá trịnull.

Ví dụ

var a = null;
alert(a); // Output: null
 
var b = "Hello World!"
alert(b); // Output: Hello World!
 
b = null;
alert(b) // Output: null

Kiểu dữ liệu đối tượng

Đây làobject một kiểu dữ liệu phức tạp cho phép bạn lưu trữ các bộ sưu tập dữ liệu.

Một đối tượng chứa các thuộc tính, được định nghĩa là một cặp khóa-giá trị. Khóa thuộc tính (tên) luôn là một chuỗi nhưng giá trị có thể là bất kỳ loại dữ liệu nào, như chuỗi, số, booleans hoặc các loại dữ liệu phức tạp như mảng, hàm và các đối tượng khác. Bạn sẽ tìm hiểu thêm về các đối tượng trong các chương sắp tới.

Ví dụ sau sẽ chỉ cho bạn cách đơn giản nhất để tạo một đối tượng trong JavaScript.

Ví dụ

var emptyObject = {};
var person = {"name": "Clark", "surname": "Kent", "age": "36"};
 
// For better reading
var car = {
    "modal": "BMW X3",
    "color": "white",
    "doors": 5
}

Bạn có thể bỏ qua dấu ngoặc kép xung quanh tên thuộc tính nếu tên đó là tên JavaScript hợp lệ. Điều đó có nghĩa là dấu ngoặc kép được yêu cầu xung quanh "first-name"nhưng là tùy chọn xung quanh firstname. Vì vậy đối tượng car trong ví dụ trên cũng có thể được viết là:

Ví dụ

var car = {
    modal: "BMW X3",
    color: "white",
    doors: 5
}

Bạn sẽ tìm hiểu thêm về các đối tượng trong chương đối tượng JavaScript .


Kiểu dữ liệu mảng

Mảng là một loại đối tượng được sử dụng để lưu trữ nhiều giá trị trong một biến. Mỗi giá trị (còn được gọi là một phần tử) trong một mảng có một vị trí số, được gọi là chỉ mục của nó và nó có thể chứa dữ liệu của bất kỳ loại dữ liệu nào - số, chuỗi, boolean, hàm, đối tượng và thậm chí cả các mảng khác. Chỉ số mảng bắt đầu từ 0, do đó phần tử mảng đầu tiên là arr[0]không phải là arr[1].

Cách đơn giản nhất để tạo một mảng là chỉ định các phần tử mảng dưới dạng danh sách được phân tách bằng dấu phẩy được đặt trong dấu ngoặc vuông, như minh họa trong ví dụ bên dưới:

Ví dụ

var colors = ["Red", "Yellow", "Green", "Orange"];
var cities = ["London", "Paris", "New York"];
 
alert(colors[0]);   // Output: Red
alert(cities[2]);   // Output: New York

Bạn sẽ tìm hiểu thêm về mảng trong chương mảng mảng JavaScript .


Kiểu dữ liệu chức năng

Hàm này là đối tượng có thể gọi được để thực thi một khối mã. Vì các hàm là các đối tượng nên có thể gán chúng cho các biến, như trong ví dụ dưới đây:

Ví dụ

var greeting = function(){ 
    return "Hello World!"; 
}
 
// Check the type of greeting variable
alert(typeof greeting) // Output: function
alert(greeting());     // Output: Hello World!

Trên thực tế, các hàm có thể được sử dụng ở bất kỳ nơi nào mà bất kỳ giá trị nào khác có thể được sử dụng. Các chức năng có thể được lưu trữ trong các biến, đối tượng và mảng. Các hàm có thể được truyền dưới dạng đối số cho các hàm khác và các hàm có thể được trả về từ các hàm. Xét hàm sau:

Ví dụ

function createGreeting(name){
    return "Hello, " + name;
}
function displayGreeting(greetingFunction, userName){
    return greetingFunction(userName);
}
 
var result = displayGreeting(createGreeting, "Peter");
alert(result); // Output: Hello, Peter

Bạn sẽ tìm hiểu thêm về các hàm trong chương hàm JavaScript .


Loại toán tử

Toán tử typeof có thể được sử dụng để tìm hiểu loại dữ liệu mà một biến hoặc toán hạng chứa. Nó có thể được sử dụng có hoặc không có dấu ngoặc đơn ( typeof(x)hoặc typeof x).

Toán tử này typeofđặc biệt hữu ích trong các tình huống khi bạn cần xử lý các giá trị của các loại khác nhau theo cách khác nhau, nhưng bạn cần phải rất cẩn thận vì nó có thể tạo ra kết quả không mong muốn trong một số trường hợp, như minh họa trong ví dụ sau:

Ví dụ

// Numbers
typeof 15;  // Returns: "number"
typeof 42.7;  // Returns: "number"
typeof 2.5e-4;  // Returns: "number"
typeof Infinity;  // Returns: "number"
typeof NaN;  // Returns: "number". Despite being "Not-A-Number"
 
// Strings
typeof '';  // Returns: "string"
typeof 'hello';  // Returns: "string"
typeof '12';  // Returns: "string". Number within quotes is typeof string
 
// Booleans
typeof true;  // Returns: "boolean"
typeof false;  // Returns: "boolean"
 
// Undefined
typeof undefined;  // Returns: "undefined"
typeof undeclaredVariable; // Returns: "undefined"
 
// Null
typeof Null;  // Returns: "object"
 
// Objects
typeof {name: "John", age: 18};  // Returns: "object"
 
// Arrays
typeof [1, 2, 4];  // Returns: "object"
 
// Functions
typeof function(){};  // Returns: "function"

Như bạn có thể thấy rõ trong ví dụ trên khi chúng tôi kiểm tra giá trịnull bằng toán tửtypeof ( dòng số 22 ), nó trả về "đối tượng" thay vì "null".

Đây là một lỗi đã tồn tại từ lâu trong JavaScript, nhưng vì có rất nhiều mã trên web được viết xung quanh hành vi này và do đó, việc khắc phục nó sẽ tạo ra nhiều vấn đề hơn, vì vậy ý ​​tưởng khắc phục sự cố này đã bị ủy ban thiết kế và duy trì JavaScript từ chối. .

Bài viết này đã giúp ích cho bạn?

Advertisements