Các loại phạm vi trong JavaScript
Phạm vi là một khái niệm quan trọng quản lý tính khả dụng của các biến. Phạm vi nằm ở các bao đóng cơ sở, xác định ý tưởng về các biến toàn cục và cục bộ Show
Nếu bạn muốn viết mã bằng JavaScript, thì việc hiểu phạm vi của các biến là điều bắt buộc Trong bài đăng này, tôi sẽ giải thích từng bước, chuyên sâu về cách phạm vi hoạt động trong JavaScript Mục lục1. Phạm viTrước khi đi sâu vào tìm hiểu phạm vi là gì, hãy thử một thí nghiệm chứng minh cách phạm vi tự thể hiện Giả sử bạn định nghĩa một biến 6
Sau đó, bạn có thể dễ dàng ghi biến này vào dòng tiếp theo sau khi khai báo. Không có câu hỏi ở đây Bây giờ, hãy di chuyển khai báo của 6 bên trong khối mã 8
Lần này, khi cố gắng ghi nhật ký biến, JavaScript ném ra 9 Tại sao nó xảy ra? Khối mã 8 tạo phạm vi cho biến 6. Và biến 6 chỉ có thể được truy cập trong phạm vi này Ở cấp độ cao hơn, khả năng truy cập của các biến bị giới hạn bởi phạm vi nơi chúng được tạo. Bạn được tự do truy cập biến được xác định trong phạm vi của nó. Nhưng bên ngoài phạm vi của nó, biến không thể truy cập được Bây giờ, hãy đưa ra một định nghĩa chung về phạm vi
2. Phạm vi chặnMột khối mã trong JavaScript xác định phạm vi cho các biến được khai báo bằng cách sử dụng 3 và 4
5 đầu tiên ghi biến chính xác vì 6 được truy cập từ phạm vi nơi nó được xác định Nhưng biến 5 thứ hai gây ra lỗi tham chiếu vì biến 6 được truy cập bên ngoài phạm vi của nó. biến không tồn tại ở đây Khối mã của các câu lệnh 8, 0, 1 cũng tạo ra một phạm vi Trong ví dụ sau vòng lặp 0 định nghĩa một phạm vi
Các biến 3 và 6 tồn tại trong phạm vi của khối mã 1 Tương tự, khối mã của câu lệnh 1 tạo phạm vi cho các biến của nó
6 được xác định trong phần thân của 8, do đó chỉ có thể truy cập 6 trong phần thân của 8 Trong JavaScript, bạn có thể xác định các khối mã độc lập. Các khối mã độc lập cũng phân định phạm vi
2. 1 var không nằm trong phạm vi khốiNhư đã thấy trong phần trước, khối mã tạo phạm vi cho các biến được khai báo bằng cách sử dụng 4 và 3. Tuy nhiên, đó không phải là trường hợp của các biến được khai báo bằng cách sử dụng 3 Đoạn mã dưới đây khai báo một biến 4 sử dụng câu lệnh 3
Biến 4, như mong đợi, có thể truy cập được trong phạm vi của khối mã 8. Tuy nhiên, biến 4 cũng có thể truy cập được bên ngoài Một khối mã không tạo phạm vi cho các biến 3, nhưng thân hàm thì có. Đọc lại câu trước và cố nhớ nó Hãy tiếp tục phạm vi chức năng trong phần tiếp theo 3. phạm vi chức năngHàm trong JavaScript xác định phạm vi cho các biến được khai báo bằng cách sử dụng 3, 3 và 4 Hãy khai báo một biến 3 trong thân hàm
4 thân hàm tạo phạm vi. Biến 6 có thể truy cập được bên trong phạm vi chức năng, nhưng không thể truy cập được bên ngoài Theo cách tương tự, thân hàm tạo phạm vi cho các khai báo hàm 3, 4 và thậm chí
4. phạm vi mô-đunMô-đun ES2015 cũng tạo phạm vi cho các biến, hàm, lớp Mô-đun 8 xác định hằng số 9 (đối với một số cách sử dụng nội bộ)
Biến 9 được khai báo trong phạm vi của mô-đun 8. Ngoài ra, biến 9 không được xuất từ mô-đun Sau đó, mô-đun 8 được nhập 0 Không thể truy cập biến 9 bên ngoài mô-đun 8 (trừ khi được xuất rõ ràng bằng cách sử dụng 6) Phạm vi mô-đun làm cho mô-đun được đóng gói. Mọi biến riêng tư (không được xuất) vẫn là một chi tiết nội bộ của mô-đun và phạm vi mô-đun bảo vệ các biến này khỏi bị truy cập bên ngoài Nhìn từ một góc độ khác, phạm vi là một cơ chế đóng gói cho các khối mã, chức năng và mô-đun 5. Phạm vi có thể được lồng nhauMột thuộc tính thú vị của phạm vi là chúng có thể được lồng vào nhau Trong ví dụ sau, hàm 4 tạo một phạm vi và bên trong khối mã điều kiện 8 tạo một phạm vi khác 1 Phạm vi khối mã 8 được lồng bên trong phạm vi chức năng 4. Phạm vi của bất kỳ loại nào (khối mã, chức năng, mô-đun) có thể được lồng vào nhau Phạm vi chứa trong một phạm vi khác được đặt tên là phạm vi bên trong. Trong ví dụ, phạm vi khối mã 8 là phạm vi bên trong của phạm vi chức năng 4 Phạm vi bao bọc một phạm vi khác được đặt tên là phạm vi bên ngoài. Trong ví dụ, phạm vi hàm 4 là phạm vi bên ngoài của phạm vi khối mã 8 Còn khả năng truy cập của biến thì sao?
Biến 6, là một phần của phạm vi chức năng 4 (phạm vi bên ngoài), có thể truy cập được bên trong phạm vi khối mã 8 (phạm vi bên trong) 6. Phạm vi toàn cầuPhạm vi toàn cầu là phạm vi ngoài cùng. Nó có thể truy cập từ bất kỳ phạm vi bên trong (còn gọi là cục bộ) Trong môi trường trình duyệt, phạm vi trên cùng của tệp JavaScript được tải bằng thẻ 8 là phạm vi toàn cầu 2 3 Một biến được khai báo bên trong phạm vi toàn cục được đặt tên là biến toàn cục. Các biến toàn cầu có thể truy cập từ bất kỳ phạm vi nào Trong đoạn mã trước, 9 là một biến toàn cục. Biến này có thể được truy cập từ bất kỳ vị trí nào trong JavaScript của trang web Phạm vi toàn cầu là một cơ chế cho phép máy chủ JavaScript (trình duyệt, Nút) cung cấp các ứng dụng có chức năng dành riêng cho máy chủ dưới dạng biến toàn cục Ví dụ, 0 và 1 là các biến toàn cục do trình duyệt cung cấp. Trong môi trường Nút, bạn có thể truy cập đối tượng 2 dưới dạng biến toàn cục 7. Phạm vi từ vựngHãy xác định 2 hàm, có hàm 3 được lồng bên trong 4 4 Nhìn vào dòng cuối cùng của đoạn trích 5. lời gọi 3 xảy ra bên ngoài phạm vi của 4. Tuy nhiên, làm thế nào để JavaScript hiểu rằng 8 bên trong 3 tương ứng với biến 8 của 4? Câu trả lời là do phạm vi từ vựng JavaScript thực hiện một cơ chế phạm vi có tên là phạm vi từ vựng (hoặc phạm vi tĩnh). Phạm vi từ vựng có nghĩa là khả năng truy cập của các biến được xác định tĩnh bởi vị trí của các biến trong phạm vi hàm lồng nhau. phạm vi chức năng bên trong có thể truy cập các biến từ phạm vi chức năng bên ngoài Một định nghĩa chính thức của phạm vi từ vựng
Trong ví dụ, phạm vi từ vựng của 3 bao gồm phạm vi của 4 Hơn nữa, 3 là một bao đóng vì nó nắm bắt biến 8 từ phạm vi từ vựng Nếu bạn muốn nắm vững khái niệm đóng cửa, tôi thực sự khuyên bạn nên đọc bài đăng của tôi 8. Biến cách lyMột thuộc tính trực tiếp của phạm vi phát sinh. phạm vi cô lập các biến. Và điều tốt là các phạm vi khác nhau có thể có các biến có cùng tên Bạn có thể sử dụng lại các tên biến phổ biến ( 4, 7, 8, 9, v.v.) trong các phạm vi khác nhau mà không có xung đột Phạm vi hàm 00 và 01 có các biến riêng, nhưng cùng tên, biến 4 5 9. Phần kết luậnPhạm vi là một chính sách quản lý tính khả dụng của các biến. Một biến được xác định bên trong một phạm vi chỉ có thể truy cập được trong phạm vi đó, nhưng không thể truy cập được bên ngoài Trong JavaScript, phạm vi được tạo bởi các khối mã, hàm, mô-đun Trong khi các biến 4 và 3 được xác định phạm vi bởi các khối mã, chức năng hoặc mô-đun, các biến 3 chỉ được xác định phạm vi bởi các hàm hoặc mô-đun Phạm vi có thể được lồng nhau. Bên trong phạm vi bên trong, bạn có thể truy cập các biến của phạm vi bên ngoài Phạm vi từ vựng bao gồm các phạm vi chức năng bên ngoài được xác định tĩnh. Bất kỳ hàm nào, bất kể được thực thi ở đâu, đều có thể truy cập các biến thuộc phạm vi từ vựng của nó (đây là khái niệm đóng) Hy vọng, bài viết của tôi đã giúp bạn hiểu rõ hơn về phạm vi Thích bài viết?đề xuất cải tiến Bài đăng chất lượng vào hộp thư đến của bạnTôi thường xuyên xuất bản bài viết có chứa
Đăng ký nhận bản tin của tôi để nhận chúng ngay trong hộp thư đến của bạn Đặt muaTham gia cùng 6915 người đăng ký khác Giới thiệu về Dmitri PavlutinNhà văn và huấn luyện viên công nghệ. Thói quen hàng ngày của tôi bao gồm (nhưng không giới hạn) uống cà phê, viết mã, viết, huấn luyện, vượt qua sự nhàm chán 😉 Hiện đang làm việc với tư cách là nhà phát triển nguồn mở toàn thời gian trong dự án Readapt - nhằm mục đích làm cho mọi người đều có thể truy cập web Có bao nhiêu loại phạm vi trong JavaScript?Có ba loại phạm vi trong JavaScript — 1) Phạm vi toàn cầu, 2) Phạm vi chức năng và, 3) Phạm vi khối
Phạm vi và các loại phạm vi trong JavaScript là gì?Phạm vi trong JavaScript đề cập đến ngữ cảnh hiện tại của mã, xác định khả năng truy cập của các biến đối với JavaScript. Hai loại phạm vi là cục bộ và toàn cầu . Biến toàn cục là những biến được khai báo bên ngoài khối. Biến cục bộ là những biến được khai báo bên trong khối.
Có bao nhiêu loại phạm vi?Như đã đề cập ở trên, có hai loại phạm vi—phạm vi sản phẩm và phạm vi dự án.
Bốn phạm vi của các loại là gì?Có bốn mức phạm vi. sản phẩm, lượt truy cập, phiên và người dùng . Sản phẩm – giá trị được áp dụng cho sản phẩm mà nó đã được đặt (chỉ dành cho Thương mại điện tử nâng cao). |