Thứ năm, 10/11/2016 | 00:00 GMT+7

Let và Const trong JavaScript với ES6 / ES2015


Hai từ khóa mới có sẵn trong ES6 / ES2015 để khai báo các biến trong JavaScript: letconst . Trái ngược với var, let và const là phạm vi khối.

Var có một vấn đề trong đó nó không nằm trong phạm vi khối, điều này có thể dẫn đến bất ngờ:

var dog = 'Ralf';

if (true) {
  var dog = 'Skip';
}

console.log(dog); // Skip

So sánh điều này với việc sử dụng let :

let dog = 'Ralf';

if (true) {
  let dog = 'Skip';
}

console.log(dog); // Ralf

Var được xác định đúng phạm vi chức năng, nghĩa là vấn đề không xảy ra trong các hàm, nhưng trong các khối như nếu hoặc cho tất cả các cược bị tắt và các biến được khai báo với var get được đưa vào phạm vi chính.

hăng sô

Với const, bạn có thể định nghĩa các biến bất biến (hằng số). Cố gắng gán lại một hằng số sẽ gây ra lỗi:

const PI = 3.1415;

PI = 5; // "TypeError: Assignment to constant variable.

Tuy nhiên, hãy cẩn thận, các mục mới vẫn có thể được đẩy vào một hằng số mảng hoặc thêm vào một đối tượng. 2 đoạn mã sau hoạt động mà không cần phàn nàn vì ta không cố gắng gán lại cho các biến:

const someArr = [3, 4, 5];

someArr.push(6);
const someObj = {
  dog: 'Skip',
  cat: 'Caramel',
  bird: 'Jack'
};

someObj.camel = 'Bob';

Let vs Var

Nhiều nhà phát triển hiện nay đồng ý rằng không có trường hợp nào quá mạnh để sử dụng var nữa và rằng sử dụng let nên là cách để tiếp tục.

Tóm lại, hãy sử dụng let !


Tags:

Các tin liên quan

Chức năng của Trình tạo trong JavaScript với ES6 / ES2015
2016-11-07
Tham số phần còn lại trong JavaScript với ES6 / ES2015
2016-11-02
Hứa hẹn trong JavaScript với ES6 / ES2015
2016-10-31
Chữ mẫu trong JavaScript (ES6 / ES2015)
2016-10-11
console.table () trong JavaScript
2016-09-28
console.time () & console.timeEnd () trong JavaScript
2016-09-28
Phương thức chuỗi toLowerCase () và toUpperCase trong JavaScript
2016-08-29
Loại bỏ JavaScript chặn hiển thị với Async và Defer
2016-08-20
Toán tử bậc ba trong JavaScript
2016-08-14
Cách quản lý phụ thuộc JavaScript và CSS Front-End với Bower trên Ubuntu 14.04
2015-08-26