Trong Series này
- Nâng cấp cho Object
- Arrow function
- Assignment Destruction
- Rest parameters và spread operator
- Template literals
- Khai báo biến với let và const
- Căn bản class
let
dùng để khai báo một biến như var
, khác nhau ở phạm vi hoạt động (scoping), ví dụ với khai báo var
function isItTwo( value ) {
if (value == 2){
var two = true
}
return two
}
isItTwo(2)
// result: true
isItTwo('two')
// result: undefined
Đoạn khai báo var two = true
nằm trong điều kiện if
nhưng vẫn hoạt động, vì khai báo biến bằng từ khóa var
phạm vi ngầm hiểu là trong cả một function
, nó giống như viết như sau
function isItTwo( value ) {
var two
if (value == 2){
two = true
}
return two
}
Khai báo biến bằng từ khóa var
dễ rối so với các ngôn ngữ khác như php
, khi biến được khai báo thì nó có phạm vi hoạt động "block-scoped"
for ( let i = 0; i < 2; i++ ) {
console.log(i)
// 0,1
}
console.log(i)
// result: i is not defined
Khai báo biến bằng từ khóa let
hay const
có phạm vi block-scoped
const pi = 3.1415
{
const pi = 16
console.log(pi)
// 16
}
console.log(pi)
// 3.1415
Khi khai báo bằng từ khóa const
phải có giá trị khởi tạo, không được phép để rỗng như let
const pi = 3.1415
const e; // SyntaxError
Nếu dùng const
để khai báo biến thì giá trị nó sẽ không được gán mới hoặc khởi tạo lại, nhưng có thể push thêm giá trị vào
const people = ['An','Luu']
people = []
console.log(people)
// Result: ['An','Luu']
people.push('Binh')
console.log(people)
// Result['An','Luu','Binh']