Có gì mới?

Chào mừng bạn đến với diễn đàn Tui Học Web

Vui lòng đăng ký hoặc đăng nhập để sử dụng hết các tính năng của forum nhé!
  • Thông báo: Hiện tại do admin không có nhiều thời gian và không thể tiếp tục quản trị và maintain forum, do đó forum sẽ có dự định được đóng lại từ 06/2022, cảm ơn mọi người đã đồng hành cùng forum suốt thời gian vừa qua. Cảm ơn rất nhiều.

Kiến thức Biến trong ES6

Kiến thức
Tình trạng
Không mở trả lời sau này.

Biến trong ES6​


ThumbnailTuiHocWeb43797f7a8ce10b62.jpg

Khái niệm:

ES6
có thể cách khai báo giá trị cho một biến bằng cách sử dụng: var, let, const.
Tùy vào điều kiện cụ thể mà sử dụng cách khai báo cho phù hợp.
  • var đã có từ các phiên bản Javascript trước đây, khai báo có 2 dạng toàn cục - global (ảnh hưởng mọi nơi) và địa phương - local (chỉ ảnh hưởng bên trong function).
  • let có từ phiên bản ES6, sử dụng như var, tuy nhiên có tác dụng phạm vi bên trong một khối (như bên trong câu điều kiện if, vòng lặp for, ...).
  • const sử dụng như let, tuy nhiên const có giá trị không đổi trong suốt ứng dụng.
Để hiểu rõ hơn về var, let, const ta xem các trường hợp bên dưới nhé:

khai báo giá trị với var:​

Khai báo toàn cục​

Biến được khai báo sẽ ảnh hưởng trong toàn bộ ứng dụng.

JavaScript:
var x = 10;
function myFnc(){
  console.log(x); /* output: 10, x có ảnh hưởng tới Function */
}
console.log(x); /* output: 10, x có ảnh hưởng khắp nơi */
myFnc();

Xem kết quả: nhấn F12, chọn Console.
Ta thấy x ảnh hưởng cả bên trong và bên ngoài function.

Khai báo địa phương​

Biến được khai báo chỉ ảnh hưởng trong function được khai báo.

JavaScript:
var x = 10;
function myFnc(){
  var y = x + 5 /* y được khai báo trong Function */
  console.log(y); /* output: 15, y chỉ có ảnh hưởng bên trong Function */
}
console.log(y); /* output: Error */
myFnc();

Ta thấy y được khai báo bên trong function nên chỉ ảnh hưởng bên trong function, nếu sử dụng bên ngoài sẽ báo lỗi.

khai báo giá trị với let​

Để hiểu rõ, trước tiên ta xét var bên trong câu điều kiện if.

var với khối (block):​


JavaScript:
var x = 10;
if (x === 10) {
  var x = 20; /* x được gán giá trị mới là 20 */
  console.log(x); /* output: 20 */
}
console.log(x);  /* output: 20 */

x bên trong câu điều kiện if sẽ cho kết quả 20.
x bên ngoài if sẽ bị ảnh hưởng kết quả từ bên trong if nên cũng cho kết quả 20.

let với khối (block):​


JavaScript:
let x = 10;
if (x === 10) {
  let x = 20; /* x được let với giá trị mới là 20 */
  console.log(x); /* output: 20, giá trị mới chỉ có tác dụng trong if */
}
console.log(x);  /* output: 10, x bên ngoài if, nên không bị ảnh hưởng giá trị mới */

x bên trong câu điều kiện if sẽ cho kết quả riêng là 20.
x bên ngoài if sẽ cho kết quả riêng (được gán ban đầu) là 10.

khai báo giá trị với const​


Sử dụng đơn giản như sau:

JavaScript:
const x = 10;
console.log(x);  /* output: 10 */

Tuy nhiên nếu đặt lại const tương tự sẽ báo lỗi:

JavaScript:
const x = 10;
console.log(x);  /* output: 10 */
if (x === 10) {
  x = 20;
  console.log(x); /* output: Error */
}

const chỉ mang duy nhất một giá trị, nếu giá trị thay đổi sẽ báo lỗi.
 
Tình trạng
Không mở trả lời sau này.
shape1
shape2
shape3
shape4
shape7
shape8
Bên trên