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

3.Sự khác nhau giữa var và let

0 0 22

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

Theo Viblo Asia

1: Variable scopes(Phạm vi sử dụng của các biến)

Các biến var sẽ thuộc phạm vi toàn cục(global scope) khi bạn định nghĩa chúng bên ngoài function. Ví dụ:

var counter;

Trong ví dụ trên, counter là biến global scope. Nó có nghĩa là biến counter có thể truy cập từ bất kỳ function nào.
Khi bạn khai báo một biến bên trong một function sử dụng từ khóa var, phạm vi của biến sẽ là local. Ví dụ

function increase() { var counter = 10;
}
// cannot access the counter variable here

Trong ví dụ này, biến counter là local trong function increase(). Nó không thể truy cập bên ngoài function.
Ví dụ tiếp theo hiển thị các số từ 0 đến 4 bên trong vòng lặp for và hiển thì số 5 bên ngoài vòng lặp

for (var i = 0; i < 5; i++) { console.log("Inside the loop:", i);
} console.log("Outside the loop:", i);

Output:

Inside the loop: 0 Inside the loop: 1 Inside the loop: 2 Inside the loop: 3 Inside the loop: 4 Outside the loop: 5

Trong ví dụ này, biến i là biến global. Vì vậy, Nó có thể truy cập cả bên trong và sau vòng lặp for.
Ví dụ tiếp theo chúng ta sẽ sử dụng từ khòa let thay thế cho từ khóa var:

for (let i = 0; i < 5; i++) { console.log("Inside the loop:", i);
} console.log("Outside the loop:", i);

Trong trường hợp này, code của chúng ta sẽ hiển thị các số từ 0 đến 4 bên trong vòng lặp for và một lỗi tham chiếu.

Inside the loop: 0
Inside the loop: 1
Inside the loop: 2
Inside the loop: 3
Inside the loop: 4

The error:

Uncaught ReferenceError: i is not defined

Vì sử dụng từ khóa let, biến i là một blocked scope. Có nghĩa là biến i chỉ tồn tại và có thể truy cập bên trong block for.
Trong Javascript, một block(một khối) được phân tách bằng một cặp dấu ngoặc nhọn {} như các câu lệnh if...else và for.

if(condition) { // inside a block
} for(...) { // inside a block
}

2: Creating global properties(tạo thuộc tính global)

Biến global var được thêm vào global object như những properties. Global object là window trên web browser và global trên Node.js:

var counter = 0;
console.log(window.counter); // 0

Tuy nhiên, biến let thì không được thêm vào global object:

let counter = 0;
console.log(window.counter); // undefined

3: Redeclaration(Khai báo lại)

Từ kháo var cho phép bạn khai báo lại một biến mà không gặp bất kỳ lỗi nào:

var counter = 10;
var counter;
console.log(counter); // 10

Tuy nhiên, nếu bạn khai báo lại với từ khóa let, bạn sẽ nhận được một lỗi:

let counter = 10;
let counter; // error

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 496

- 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 31

- 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 24

- 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 33

- 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 57

- 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 81