- vừa được xem lúc

4.Khai báo constants trong ES6

0 0 16

Người đăng: Gấu con

Theo Viblo Asia

Giới thiệu về từ khóa const trong JavaScript

ES6 cung cấp một cách để khai báo một constant bằng việc sử dụng kerword const. Keyword const tạo một tham chiếu chỉ đọc cho một giá trị.

const CONSTANT_NAME = value;

Theo quy ước thì các constants sẽ được viết hoa và cách nhau giữa các từ bởi dấu gạch chân.
Giống như keyword let, keyword const khai báo biến kiểu blocked-scope. Tuy nhiên, biến blocked-scope khi khai báo bằng const thì không thể gán lại giá trị.
Khai báo biến sử dụng keyword let thì bạn có thể thay đổi giá trị của chúng bất kỳ lúc nào bạn muốn như ví dụ sau:

let a = 10;
a = 20;
a = a + 5;
console.log(a); // 25

Tuy nhiên, biến sử dụng keyword const thì không thể thay đổi giá trị. Có nghĩa là bạn không thể gán lại giá trị cho chúng một giá trị khác.

const RATE = 0.1;
RATE = 0.2; // TypeError

Khi khai báo biến sử dụng keyword const bạn bắt buộc phải khởi tạo giá trị ban đầu cho chúng,nếu không nó sẽ hiển thị lỗi

const RED; // SyntaxError

JavaScript const and Objects

Keyword const đảm bảo rằng giá trị của nó chỉ có thể ở trạng thái read-only.Tuy nhiên chúng ta có thể thay đổi giá trị thuộc tính của chúng trong Object như ví dụ bên dưới.

const PERSON = {age: 35};
PERSON.age = 40 //OK
console.log(PERSON); //OK

Tuy nhiên bạn không thể gán lại giá trị cho biến PERSON nhé.

const PERSON = {age: 35};
PERSON = {age: 40} // TypeError

Trong trường hợp bạn muốn không cho phép thay đổi giá trị thuộc tính trong biến PERSON thì bạn phải sử dụng method Object.freeze().

const PERSON = Object.freeze({age: 35});
PERSON.age = 40 // TypeError
console.log(PERSON); // Output 35

Ví dụ, khai báo biến company với từ khóa constant và sử dụng Object.freeze()

const company = Object.freeze({ name: 'ABC corp', address: { street: 'North 1st street', city: 'San Jose', state: 'CA', zipcode: 95134 }
});

Nhưng object company.address có thể thay đổi được, bạn có thể thêm mới hoặc cập nhật một thuộc tính vào object company.address như bên dưới.

company.address.country = 'USA'; // OK
company.address.street = 'North 1st street 123'; // OK

JavaScript const and Arrays

Hãy theo dõi ví dụ bên dưới

const colors = ['red'];
colors.push('green');
console.log(colors); // ["red", "green"] colors.pop();
colors.pop();
console.log(colors); // [] colors = []; // TypeError

Ví dụ trên mình khai báo array colors sử dụng từ khóa constant và bạn có thể thêm 1 thành phần vào mảng đó. Những bạn không thể gán lại array colors bằng một giá trị khác.

JavaScript const in a for loop

ES6 cung cấp một cấu trúc mới được gọi là for......of cho phép bạn tạo một vòng lặp lặp qua các đối tượng có thể lặp lại như arrays, maps,.

let scores = [75, 80, 95]; for (let score of scores) { console.log(score);
}

Nếu bạn không có ý định sửa đổi biến score bên trong vòng lặp, bạn có thể sử dụng từ khóa const để thay thế:

let scores = [75, 80, 95];
for (const score of scores) { console.log(score);
}

Trong ví dụ này, for ... of tạo ra một ràng buộc mới cho từ khóa const trong mỗi lần lặp vòng lặp. Nói cách khác, một const score mới được tạo ra trong mỗi lần lặp.
Lưu ý rằng const sẽ không hoạt động trong vòng lặp for bắt buộc.

for (const i = 0; i < scores.length; i++) { // TypeError console.log(scores[i]);
}

Summary

  • Từ khóa const tạo một tham chiếu chỉ đọc cho một giá trị. Tham chiếu chỉ đọc không thể gán lại giá trị nhưng giá trị có thể thay đổi.
  • Các biến khai báo sử dụng từ khóa const thuộc kiểu blocked-scope và không thể khai báo lại.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Giới thiệu Typescript - Sự khác nhau giữa Typescript và Javascript

Typescript là gì. TypeScript là một ngôn ngữ giúp cung cấp quy mô lớn hơn so với JavaScript.

0 0 502

- vừa được xem lúc

Type annotation vs Type Inference - Typescript

Trong bài viết này, chúng ta sẽ tìm hiểu kỹ về TypeScript bằng cách tìm hiểu sự khác biệt giữa kiểu chú thích và kiểu suy luận. Tôi sẽ cho rằng bạn có một số kinh nghiệm về JavaScript và biết về các kiểu cơ bản, như chuỗi, số và boolean.

0 0 32

- vừa được xem lúc

Type Annotation và Type Inference trong TypeScript là gì?

Khi làm việc với javascript chắc hẳn các bạn đã quá quen với việc dùng biến mà không cần phải quan tâm đến kiểu dữ liệu của nó là gì phải không? Đúng là mới đầu tiếp cận với Typescript mình cũng cảm thấy nó khá là phiền vì cần phải khai báo đủ type để nó chặt chẽ hơn. Lúc đó mình còn nghĩ: " JavaScr

0 0 25

- vừa được xem lúc

Tìm hiểu TypeScript và kiến thức cơ bản

TypeScript là gì. TypeScript sử dụng tất cả các tính năng của của ECMAScript 2015 (ES6) như classes, modules.

0 0 35

- vừa được xem lúc

TypeScript - P1: Vì sao TypeScript được yêu thích đến vậy?

Trải nghiệm thực tế. Trước khi là một Web Developer, tôi là một Mobile Developer và Java là thứ mà tôi từng theo đuổi.

0 1 58

- vừa được xem lúc

4 Tính năng rất hay từ TypeScript

Xin chào các bạn hôm nay mình xin chia sẽ những tính năng rất hay của TypeScript (TS), các bạn cùng tìm hiểu nhé. Ngoài việc set Type cho biến, tham số hay function thì ví dụ khi bạn nhìn vào một tham

0 0 82