Hãy để Watts Var Javascript

Từ khóa 'let' đã được giới thiệu trong ES6 (2015). Là một nhà phát triển, chúng tôi tiếp tục sử dụng nó như var chỉ biết rằng nó giới hạn phạm vi của biến trong một khối

Trong bài viết này, tôi sẽ chỉ thảo luận về một mã rất phổ biến trong đó việc sử dụng let vs var có thể tạo ra nhiều khác biệt và cố gắng hiểu tại sao mã lại hoạt động khác

Hãy lấy một mã hiện có từ blog của tôi, nơi chúng tôi đã cố triển khai chức năng tìm nạp

Chúng tôi sẽ cố gắng hiểu dòng 16 đến 27

Được chứ. Đoạn mã trên dường như đang hoạt động tốt. Bạn có thể thử nó tại fiddle. đầu ra là

Hãy để Watts Var Javascript

để từ khóa

Câu lệnh let được sử dụng để khai báo một biến cục bộ trong TypeScript. Nó tương tự như từ khóa var, nhưng nó có một số hạn chế về phạm vi so với từ khóa var. Từ khóa let có thể nâng cao khả năng đọc mã của chúng ta và giảm khả năng xảy ra lỗi lập trình. Một biến được khai báo với từ khóa let chỉ giới hạn trong phạm vi khối

Tóm lược. Trong hướng dẫn này, bạn sẽ tìm hiểu về sự khác biệt giữa từ khóa

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

Code language: JavaScript (javascript)
2 và

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

Code language: JavaScript (javascript)
3.

#1. phạm vi biến

Các biến

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

Code language: JavaScript (javascript)
2 thuộc về phạm vi toàn cục khi bạn định nghĩa chúng bên ngoài một hàm. Ví dụ

var counter;

Code language: JavaScript (javascript)

Trong ví dụ này,

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

Code language: JavaScript (javascript)
5 là một biến toàn cục. Điều đó có nghĩa là biến

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

Code language: JavaScript (javascript)
5 có thể được truy cập bởi bất kỳ chức năng nào

Khi bạn khai báo một biến bên trong một hàm bằng từ khóa

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

Code language: JavaScript (javascript)
2, phạm vi của biến là cục bộ. Ví dụ

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

Code language: JavaScript (javascript)

Trong ví dụ này, biến

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

Code language: JavaScript (javascript)
5 là cục bộ của hàm

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

Code language: JavaScript (javascript)
9. Nó không thể truy cập được bên ngoài chức năng

Ví dụ sau hiển thị bốn số từ 0 đến 4 bên trong vòng lặp và số 5 bên ngoài vòng lặp

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

Code language: JavaScript (javascript)
0

đầu ra

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

Code language: JavaScript (javascript)
1

Trong ví dụ này, biến

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

Code language: JavaScript (javascript)
00 là biến toàn cục. Do đó, nó có thể được truy cập từ cả bên trong và sau vòng lặp

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

Code language: JavaScript (javascript)
01

Ví dụ sau sử dụng từ khóa

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

Code language: JavaScript (javascript)
3 thay vì từ khóa

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

Code language: JavaScript (javascript)
2.

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

Code language: JavaScript (javascript)
6

Trong trường hợp này, mã hiển thị bốn số từ 0 đến 4 bên trong một vòng lặp và lỗi tham chiếu

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

Code language: JavaScript (javascript)
7

Lỗi lầm

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

Code language: JavaScript (javascript)
8

Vì ví dụ này sử dụng từ khóa

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

Code language: JavaScript (javascript)
3 nên biến

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

Code language: JavaScript (javascript)
00 bị chặn phạm vi. Điều đó có nghĩa là biến

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

Code language: JavaScript (javascript)
00 chỉ tồn tại và có thể truy cập được bên trong khối vòng lặp

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

Code language: JavaScript (javascript)
07.

Trong JavaScript, một khối được phân định bằng một cặp dấu ngoặc nhọn

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

Code language: JavaScript (javascript)
08 như trong câu lệnh

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

Code language: JavaScript (javascript)
09 và

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

Code language: JavaScript (javascript)
07

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

Code language: JavaScript (javascript)
6

#2. Tạo thuộc tính toàn cầu

Các biến toàn cầu

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

Code language: JavaScript (javascript)
2 được thêm vào đối tượng toàn cầu dưới dạng các thuộc tính. Đối tượng toàn cục là

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

Code language: JavaScript (javascript)
12 trên trình duyệt web và

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

Code language: JavaScript (javascript)
13 trên Node. Jas

var counter;

Code language: JavaScript (javascript)
0

Tuy nhiên, các biến

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

Code language: JavaScript (javascript)
3 không được thêm vào đối tượng toàn cục.

var counter;

Code language: JavaScript (javascript)
2

#3. khai báo lại

Từ khóa

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

Code language: JavaScript (javascript)
2 cho phép bạn khai báo lại một biến mà không gặp vấn đề gì

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

Code language: JavaScript (javascript)
0

Tuy nhiên, nếu bạn khai báo lại một biến với từ khóa

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

Code language: JavaScript (javascript)
3, bạn sẽ gặp lỗi

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

Code language: JavaScript (javascript)
1

#4. Vùng chết tạm thời

Biến

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

Code language: JavaScript (javascript)
3 có vùng chết tạm thời trong khi biến

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

Code language: JavaScript (javascript)
2 thì không. Để hiểu vùng chết tạm thời, hãy xem xét vòng đời của cả hai biến

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

Code language: JavaScript (javascript)
2 và

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

Code language: JavaScript (javascript)
3, có hai bước. sáng tạo và thực hiện

Các biến var

  • Trong giai đoạn tạo, công cụ JavaScript chỉ định không gian lưu trữ cho các biến

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

    Code language: JavaScript (javascript)
    2 và ngay lập tức khởi tạo chúng thành

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

    Code language: JavaScript (javascript)
    62
  • Trong giai đoạn thực thi, công cụ JavaScript gán các biến

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

    Code language: JavaScript (javascript)
    2 các giá trị được chỉ định bởi các phép gán nếu có. Mặt khác, các biến

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

    Code language: JavaScript (javascript)
    2 vẫn chưa được xác định.

Xem ngữ cảnh thực thi để biết thêm thông tin

Các biến let

  • Trong giai đoạn tạo, công cụ JavaScript chỉ định không gian lưu trữ cho biến

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

    Code language: JavaScript (javascript)
    3 nhưng không khởi tạo biến. Tham chiếu các biến chưa được khởi tạo sẽ gây ra lỗi

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

    Code language: JavaScript (javascript)
    66
  • Các biến

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

    Code language: JavaScript (javascript)
    3 có cùng giai đoạn thực hiện như các biến

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

    Code language: JavaScript (javascript)
    2.

Vùng chết tạm thời bắt đầu từ khối cho đến khi khai báo biến

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

Code language: JavaScript (javascript)
3 được xử lý. Nói cách khác, đó là vị trí mà bạn không thể truy cập các biến

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

Code language: JavaScript (javascript)
3 trước khi chúng được xác định

Tôi nên sử dụng VAR hay cho phép JavaScript?

Quy tắc chung là bạn luôn phải khai báo biến với const, nếu bạn nhận thấy giá trị của biến cần thay đổi thì quay lại đổi thành let. Sử dụng let khi bạn biết rằng giá trị của một biến sẽ thay đổi . Sử dụng const cho mọi biến khác. Không sử dụng va.

Tại sao let tốt hơn VAR trong JavaScript?

let cho phép bạn khai báo các biến bị giới hạn trong phạm vi của một câu lệnh khối hoặc biểu thức mà nó được sử dụng , không giống như từ khóa var khai báo một biến trên toàn cục, hoặc cục bộ cho toàn bộ chức năng bất kể phạm vi khối.

VAR có nhanh hơn không?

Chỉ là một bản cập nhật; . Kể từ Chrome v51. 0. 2704. 84m (64-bit) ( V8 5. 1

Tôi có thể thay VAR bằng LET không?

let và const là các khai báo biến phạm vi khối có thể thay thế khai báo 'var' trong nhiều trường hợp . const khai báo các biến trong phạm vi bị chặn không thể gán lại.