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ụ:
[code language=”javascript”]// Khai báo biến hằng
const PI = 3.141592653589793;
PI = 3.14; // Error
PI = PI + 10; // Error[/code] Try it »

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

Đúng:
[code language=”javascript”]const PI = 3.14159265359;[/code]
Sai:
[code language=”javascript”]const PI;
PI = 3.14159265359;[/code]
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ụ:
[code language=”javascript”]var x = 10;
// Ở đây x = 10;

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

// Ở đây x = 10;[/code] 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ụ:
[code language=”javascript”]// 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";[/code] Try it »

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

Ví dụ:
[code language=”javascript”]const car = {name:"Ferrari", model:"500", color:"White"};
car = {name:"Toyota", model:"EX60", color:"Blue"}; // Error[/code] 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ụ:
[code language=”javascript”]// 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");[/code] Try it »

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

Ví dụ:
[code language=”javascript”]const cars = ["Ford", "Volvo", "BMW"];
cars = ["Toyota", "Ferrari", "Audi"]; // Error[/code] 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ụ:
[code language=”javascript”]var x = 2; // OK
var x = 3; // OK
x = 4; // OK[/code]

– 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ụ:
[code language=”javascript”]var x = 2; // OK
const x = 2; // Error
{
let x = 2; // OK
const x = 2; // Error
}[/code]

– 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ụ:
[code language=”javascript”]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
}[/code]

– 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ụ:
[code language=”javascript”]const x = 2; // OK

{
const x = 3; // OK
}

{
const x = 4; // OK
}[/code]

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ụ:
[code language=”javascript”]carName = "Toyota";
// CÓ THỂ sử dụng biến carName tại đây

// Khai báo biến var
var carName;[/code] 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ụ:
[code language=”javascript”]carName = "Toyota";
// KHÔNG THỂ sử dụng biến carName tại đây

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

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 bạn đọ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

Translate »