Vấn đề với var trong JavaScript là gì?
Tất cả chúng ta đều bắt đầu từ đâu đó. Tôi đã học JavaScript khai báo biến với từ khóa Show Nếu bạn viết mã như Chúng ta thường nghĩ về ngôn ngữ lập trình như một bộ quy tắc khắc trong đá. Thực tế là một ngôn ngữ lập trình - giống như bất kỳ ngôn ngữ nói nào - không ngừng phát triển Bây giờ tôi sử dụng các từ khóa const myFunction = (x,y) => {0 để khai báo tất cả các biến của mình trong JavaScript và bạn cũng vậy Hãy tìm hiểu cách thức và lý do Khai báo hằng đúngMột biến, theo tên, xác định một giá trị thay đổi. Mặc dù không nhất thiết có gì sai khi khai báo và không chạm vào một biến, nhưng nếu chúng ta đang cố gắng viết mã có ý nghĩa ngữ nghĩa thì chúng ta nên phân biệt giữa biến và hằng Hằng đối lập với biến, giá trị đã khai báo không thay đổi. Trong lịch sử, để định nghĩa một hằng số, chúng ta sử dụng tất cả các chữ in hoa, giống như màu sắc tươi sáng trên một con vật độc hại Thay vì dựa vào quy ước, việc giới thiệu từ khóa Để sử dụng từ khóa // the old way Việc thực hiện đơn giản, lý do đơn giản. Sử dụng Các tỷ lệ số như thuế suất hoặc chuyển đổi giữa các đơn vị là những lựa chọn dễ dàng. Một nơi khác bạn sẽ thấy const myFunction = (x,y) => { Bây giờ chức năng của bạn không thể bị ghi đè JavaScript bị thiếu sự rõ ràng về phạm vi thường dẫn đến sự thất vọng khi phát triển và khắc phục sự cố. Dưới đây là tóm tắt về các điểm kỳ lạ trong phạm vi JS
Sử dụng const myFunction = (x,y) => {0 làm rõ và giải quyết nhiều điều kỳ lạ này. Hãy xem xét kỹ hơn khai báo lạiCái này đơn giản thôi, bạn không thể khai báo lại một biến đã được tạo bằng ________0 var x = 0; đối tượng toàn cầuỞ cấp cao nhất, các biến được khai báo với ____18_______ được thêm vào đối tượng toàn cầu dưới dạng thuộc tính trong khi các biến ___________0 thì không var x = 0; cẩuCác biến được xác định bằng const myFunction = (x,y) => {0 chỉ có thể truy cập được bên trong phạm vi khối của chúng trong khi các biến var được nâng lên cấp hàm// Using var đóng cửaCái này khó hiểu nếu nó là một khái niệm mới, nhưng bao đóng là một hàm tham chiếu đến một biến tự do Khi chúng ta có một bao đóng với biến var functions = [];for (var i = 0; i < 3; i++) { Sử dụng const myFunction = (x,y) => {0, một tham chiếu mới được tạo mỗi lần var functions = []; Cuối cùng, ngay cả khi bạn không hiểu 100% về những lý do này và lý do tại sao chúng hoạt động theo cách chúng làm, thì việc chuyển sang const myFunction = (x,y) => {0 sẽ dẫn đến mã rõ ràng hơn, hoạt động nhất quán và sẽ dễ dàng khắc phục sự cố/bảo trì hơnMột lời cảnh báo Mặc dù const myFunction = (x,y) => {0 và const nên thay thế hiệu quả từ khóa var , nhưng cuộc sống không phải lúc nào cũng đơn giản như vậy. Vì những từ khóa này đã được giới thiệu trong ECMAScript 2015 (ES6), nếu nền tảng bạn làm việc không cho phép nó thì bạn không gặp may. Ngoài ra, bạn sẽ muốn đảm bảo rằng bạn thực hiện các bước để đảm bảo mã của bạn hoạt động trên các trình duyệt của đối tượng mục tiêu của bạnBạn vẫn thấy mình đang sử dụng var x = 0;9 chứ? Tại sao sử dụng var trong JavaScript lại không tốt?Từ khóa Var
. Theo nguyên tắc chung, bạn nên tránh sử dụng từ khóa var. if a variable is defined in a loop or in an if statement it can be accessed outside the block and accidentally redefined leading to a buggy program. As a general rule, you should avoid using the var keyword.
Sử dụng var trong js có ổn không?Các biến được khai báo bên ngoài bất kỳ chức năng và khối nào là toàn cục và được cho là có Phạm vi toàn cầu. Điều này có nghĩa là bạn có thể truy cập chúng từ bất kỳ phần nào của chương trình JavaScript hiện tại. Bạn có thể sử dụng var , let và const để khai báo các biến toàn cục . Nhưng bạn không nên làm điều đó quá thường xuyên.
Nhược điểm của việc sử dụng var để khai báo một biến là gì?Nếu bạn sử dụng nó, bạn đang khai báo biến bên trong phạm vi hiện tại. Điều này rất tệ vì về cơ bản bạn đã làm ô nhiễm phạm vi toàn cầu .
Các vấn đề phạm vi gây ra bởi VAR là gì?Các biến được khai báo bằng var sẽ được tự động khởi tạo thành không xác định trong phạm vi của chúng , ngay cả khi bạn tham chiếu chúng trước khi chúng được khai báo. Vấn đề lớn là không xác định không phải lúc nào cũng có nghĩa là bạn đang sử dụng một biến trước khi nó được xác định. |