JavaScript

Từ khóa const trong JavaScript

Từ khóa const trong JavaScript
Được viết bởi Minh Hoàng

Series lập trình JavaScript, ngôn ngữ lập trình linh động, thực thi phía client.

Từ khóa const trong JavaScript

1. Từ khóa const trong JavaScript

1. Từ khóa const trong JavaScript

– ECMAScript 2015 (ES2015) đã giới thiệu hai từ khóa mới quan trọng trong JavaScript là: letconst.

– Các biến được định nghĩa bởi const cũng hoạt động như các biết định nghĩa bởi let, nhưng điểm khác là không được phép gán lại giá trị.

Ví dụ:
// Khai báo biến hằng
const PI = 3.141592653589793;
PI = 3.14;      // Error
PI = PI + 10;   // Error
Try it »

– Biến const JavaScript phải được gán giá trị khi chúng được khai báo:

Đúng:
const PI = 3.14159265359;
Sai:
const PI;
PI = 3.14159265359;
2. Phạm vi biến khi khai báo bằng const

2. Phạm vi biến khi khai báo bằng const

– Khai báo một biến với const tương tự như let khi nói đến phạm vi khối (Block Scope).

– Ở ví dụ bên dưới: giá trị của biến x được khai báo trong khối (block), không giống với x được khai báo bên ngoài khối:

Ví dụ:
var x = 10;
// Ở đây x = 10;

{ 
    const x = 99;
    // Ở đây x = 99;
}

// Ở đây x = 10;
Try it »

3. Constant Objects và Constant Arrays có thể thay đổi được?

3. Constant Objects và Constant Arrays có thể thay đổi được?

3.1. Constant Objects

– Bạn có thể thay đổi các thuộc tính (properties) của một constant object:

Ví dụ:
// Tạo đối tượng car:
const car = {name:"Ferrari", model:"500", color:"White"};

// Thay đổi thuộc tính:
car.color = "Red";

// Thêm thuộc tính mới:
car.owner = "Minh Hoàng";
Try it »

– Nhưng KHÔNG thể gán lại một constant object:

Ví dụ:
const car = {name:"Ferrari", model:"500", color:"White"};
car = {name:"Toyota", model:"EX60", color:"Blue"};		// Error
Try it »

3.2. Constant Arrays

– Bạn có thể thay đổi các phần tử (elements) của một constant array:

Ví dụ:
// Tạo một mảng:
const cars = ["Ford", "Volvo", "BMW"];

// Thay đổi giá trị của phần tử trong mảng:
cars[1] = "Toyota";

// Thêm phần tử mới vào mảng:
cars.push("Audi");
Try it »

– Nhưng KHÔNG thể gán lại một constant array:

Ví dụ:
const cars = ["Ford", "Volvo", "BMW"];
cars = ["Toyota", "Ferrari", "Audi"];		// Error
Try it »
4. Khai báo lại biến bằng const có được không?

4. Khai báo lại biến bằng const có được không?

– Việc khai báo lại (redeclaring) biến var JavaScript được cho phép ở bất kỳ đâu trong chương trình:

Ví dụ:
var x = 2;			//  OK
var x = 3;			//  OK
x = 4;				//  OK

– Việc khai báo lại (redeclaring) hoặc gán lại (reassigning) biến var hoặc biến let đã tồn tại thành const, trong cùng phạm vi (scope), hoặc trong cùng một khối (block) là không được phép:

Ví dụ:
var x = 2;			// OK
const x = 2;		// Error
{
    let x = 2;		// OK
    const x = 2;	// Error
}

– Việc khai báo lại (redeclaring) hoặc gán lại (reassigning) biến const đã tồn tại, trong cùng phạm vi (scope), hoặc trong cùng một khối (block) là không được phép:

Ví dụ:
const x = 2;       // OK
const x = 3;       // Error
x = 3;             // Error
var x = 3;         // Error
let x = 3;         // Error

{
    const x = 2;   // OK
    const x = 3;   // Error
    x = 3;         // Error
    var x = 3;     // Error
    let x = 3;     // Error
}

– Việc khai báo lại (redeclaring) một biến bằng từ khóa const, trong một phạm vi (scope) khác, hoặc trong một khối (block) khác là được phép

Ví dụ:
const x = 2;       // OK

{
    const x = 3;   // OK
}

{
    const x = 4;   // OK
}
5. Const và Hoisting

5. Const và Hoisting

– Các biến được định nghĩa với var được hoisted lên trên cùng.

– Bạn có thể sử dụng biến var trước khi nó được khai báo:

Ví dụ:
carName = "Toyota";
// CÓ THỂ sử dụng biến carName tại đây

// Khai báo biến var
var carName;
Try it »

– Các biến được định nghĩa với const KHÔNG được hoisted lên trên cùng.

– Do đó, KHÔNG thể sử dụng biến const trước khi nó được khai báo:

Ví dụ:
carName = "Toyota";
// KHÔNG THỂ sử dụng biến carName tại đây

// Khai báo biến const
const carName = "Toyota";
Try it »

Tham khảo w3schools.

Cảm ơn bạn đã theo dõi. Đừng ngần ngại hãy cùng thảo luận với chúng tôi!


Giới thiệu

Minh Hoàng

Xin chào, tôi là Hoàng Ngọc Minh, hiện đang làm BrSE, tại công ty Toyota, Nhật Bản. Những gì tôi viết trên blog này là những trải nghiệm thực tế tôi đã đúc rút ra được trong cuộc sống, quá trình học tập và làm việc. Các bài viết được biên tập một cách chi tiết, linh hoạt để giúp người đọc có thể tiếp cận một cách dễ dàng nhất. Hi vọng nó sẽ có ích hoặc mang lại một góc nhìn khác cho bạn[...]

3
Bình luận của bạn

avatar
3 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
0 Comment authors
Recent comment authors
Mới nhất Cũ nhất Thích nhiều nhất
trackback

[…] – Đối với biến khai báo bằng từ khóa let hoặc const thì sẽ không được Hoisted. – Chi tiết xem thêm: Từ khóa let | Từ khóa const. […]

trackback

[…] trời” mà nó chưa được khai báo bằng 1 trong các từ khóa như var, let, hay const rồi gán giá trị cho nó, thì biến đó sẽ được JavaScript hiểu là 1 biến toàn […]

trackback

[…] ta sẽ cùng điểm qua 2 định nghĩa của Constant và Literal để hiểu thêm về […]

Từ khóa const trong JavaScript

by Minh Hoàng Time to read: 5 min
3