Hướng dẫn do we need to use var that this javascript? - chúng ta có cần sử dụng var mà javascript này không?
Show
Từ khóa 3 là cách đầu tiên của JavaScript để khai báo một biến. Nó phù hợp, phải không? Var, biến, nó trong tên. Nhưng giống như Joker, 3 là nhiều hơn khuôn mặt xinh đẹp - nó có một số hành lý. Là một lập trình viên ban đầu, hoặc một người dày dạn nhúng ngón chân vào sự phát triển của JavaScript, bạn có thể tự hỏi khi nào bạn nên sử dụng 3 để khai báo các đối tượng và chức năng JavaScript của bạn.Không bao giờ sợ hãi. Tôi có 3 lý do để bạn sử dụng 3 trong dự án JavaScript tiếp theo của bạn.Bạn yêu thích truyền thống và gây ra bất cứ điều gì mớiVAR có thể là từ khóa lâu đời nhất để khai báo một biến, nhưng cho đến nay nó là thanh duy nhất. Đó là anh em họ, 7 và 8 đã bùng nổ trên hiện trường với ES6 (hơn 6 năm trước khi viết bài này!). Nhưng nếu gắn bó với các tiêu chuẩn cũ đầy nguy hiểm là điều của bạn, hãy tiếp tục sử dụng 3 và để lại những từ khóa mới nổi này để nghe nhạc pop khủng khiếp của họ và phàn nàn về cha mẹ của họ.Bạn thích tính đột biến, ngay cả khi bạn khôngVAR có sự phân biệt rắc rối là tạo một biến thuộc bất kỳ loại nào, sau đó có thể được thay đổi thành một biến thuộc bất kỳ loại nào sau này. Đúng vậy, số bạn đã khai báo trên dòng 4 chỉ trở thành một chuỗi trên dòng 17 và Boolean trên dòng 109. Tính linh hoạt của loại này là một tính năng chính của JavaScript, nhưng nó có thể tránh được. Nhưng nếu bạn quá thích sống một cách nguy hiểm, hãy tiếp tục sử dụng var. Bạn thích phạm vi rò rỉTrước ES6, các biến JavaScript luôn được xác định ở phạm vi hàm. Trong rất nhiều trường hợp, điều này có nghĩa là các biến là toàn cầu. JavaScript đã không thực thi các phạm vi cấp độ khối như bên trong vòng 0 hoặc khối 1. Vì vậy, một biến được khai báo với 3 sẽ được nâng lên trên đỉnh của phạm vi chức năng của nó. Nói cách khác, khai báo biến đã di chuyển lên đỉnh của môi trường từ vựng hiện tại với giá trị 3. Một vấn đề phổ biến phát sinh từ việc nâng cao là các biến như vậy có thể truy cập được ngoài phạm vi khối, nơi nhà phát triển có thể không mong đợi chúng.Một người tinh vi và khó phát hiện lỗi hơn cũng có thể xảy ra ở đây, bóng tối thay đổi. Hiếm khi điều này có thể được mong muốn. Nếu đó là bạn, 3 là anh hùng của bạn.Phải có cách tốt hơnNếu bạn đã làm được điều đó đến nay, có lẽ bạn đã tìm ra một bình luận khốc liệt về cách tôi sai về 3. Sự thật là, không ai nên sử dụng 3 trong bất kỳ mã JavaScript nào ngoại trừ một bài học lịch sử. Ngay cả sau đó, nó nên đi kèm với một chú thích nói điều gì đó như: "Xin đừng bao giờ làm điều này." 7 và 8 đã có sẵn trong mọi trình duyệt lớn trong 6 năm qua. Đây thực sự, thực sự cổ xưa trong những năm trước. 3 không chỉ là cha mẹ hiểu lầm thiếu niên của họ, đó là ông bà tuyệt vời mà mọi người yêu thích nhưng không ai mời đến các bữa tiệc vui vẻ. 7 giữ lại hệ thống loại linh hoạt của JavaScript trong khi cho phép phân tán khối. 1 tạo ra A-Bạn đoán nó-biến không đổi trong phạm vi khối. 1 tạo ra một biến không thể được chỉ định lại, nhưng tương tự như hầu hết các ngôn ngữ khác, các đối tượng 8 có thể có các thuộc tính của chúng bị đột biến. Hai lựa chọn thay thế cho 3 nên bao gồm mọi trường hợp sử dụng bạn có. Ngay cả khi bạn đang ở trong vị trí khó khăn của việc cần hỗ trợ các trình duyệt thực sự cổ xưa, đừng sử dụng 3. Sử dụng một công cụ như Babel.Vì vậy, xin vui lòng, xin vui lòng, đừng sử dụng 3. VAR có phải là tùy chọn trong JavaScript không? 8Thử nó Cú phápOptionalTên biến. Nó có thể là bất kỳ định danh pháp lý. 9 Tùy chọn
Giá trị ban đầu của biến. Nó có thể là bất kỳ biểu hiện pháp lý. Giá trị mặc định là 'use strict'; function foo() { var x = 1; function bar() { var y = 2; console.log(x); // 1 (function `bar` closes over `x`) console.log(y); // 2 (`y` is in scope) } bar(); console.log(x); // 1 (`x` is in scope) console.log(y); // ReferenceError in strict mode, `y` is scoped to `bar` } foo(); 3.Ngoài ra, cú pháp gán phá hủy cũng có thể được sử dụng để khai báo các biến. Sự mô tả
Các biến được khai báo bằng cách sử dụng 3 được tạo trước khi bất kỳ mã nào được thực thi trong một quy trình được gọi là nâng. Giá trị ban đầu của chúng là 3.
Trong bối cảnh toàn cầu, một biến được tuyên bố bằng cách sử dụng 3 được thêm vào như một thuộc tính không thể cấu hình của đối tượng toàn cầu. Điều này có nghĩa là không thể thay đổi mô tả thuộc tính của nó và nó không thể bị xóa bằng cách sử dụng 7. Tên tương ứng cũng được thêm vào một danh sách trên khe cắm nội bộ 8 trên hồ sơ môi trường toàn cầu (tạo thành một phần của môi trường từ vựng toàn cầu). Danh sách các tên trong 8 cho phép thời gian chạy để phân biệt giữa các biến toàn cầu và các thuộc tính đơn giản trên đối tượng toàn cầu.Tài sản được tạo trên đối tượng toàn cầu cho các biến toàn cầu, được đặt là không thể cấu hình được vì định danh sẽ được coi là một biến, thay vì một thuộc tính đơn giản của đối tượng toàn cầu. JavaScript có quản lý bộ nhớ tự động và sẽ không có ý nghĩa gì khi có thể sử dụng toán tử 7 trên một biến toàn cầu.
Lưu ý rằng trong cả hai mô-đun phổ biến NODEJS và các mô-đun ECMAscript gốc, các khai báo biến cấp cao nhất được đưa vào mô-đun và do đó không được thêm vào làm các thuộc tính cho đối tượng toàn cầu. Bài tập định danh không đủ tiêu chuẩnĐối tượng toàn cầu nằm ở đầu chuỗi phạm vi. Khi cố gắng giải quyết tên thành một giá trị, chuỗi phạm vi được tìm kiếm. Điều này có nghĩa là các thuộc tính trên đối tượng toàn cầu có thể nhìn thấy thuận tiện từ mọi phạm vi, mà không cần phải đủ điều kiện tên với 1 hoặc 2 hoặc 3.Vì đối tượng toàn cầu có thuộc tính 4 ( 5), bạn có thể sử dụng mã sau:
Vì vậy, đối tượng toàn cầu cuối cùng sẽ được tìm kiếm cho các định danh không đủ tiêu chuẩn. Bạn không phải nhập 6, bạn chỉ có thể nhập 4 không đủ tiêu chuẩn. Hệ quả, trong chế độ không nghiêm ngặt, là sự gán cho các định danh không đủ tiêu chuẩn, nếu không có biến cùng tên được khai báo trong chuỗi phạm vi, giả sử bạn muốn tạo một thuộc tính với tên đó trên đối tượng toàn cầu.
Trong chế độ nghiêm ngặt, việc gán cho một định danh không đủ tiêu chuẩn ở chế độ nghiêm ngặt sẽ dẫn đến 8, để tránh việc tạo ra các thuộc tính trên đối tượng toàn cầu.Lưu ý rằng hàm ý của những điều trên, là, trái với thông tin sai lệch phổ biến, JavaScript không có các biến ngầm hoặc không được khai báo, nó chỉ có một cú pháp trông giống như nó. var nângBởi vì các khai báo 3 được xử lý trước khi bất kỳ mã nào được thực thi, việc khai báo một biến ở bất cứ đâu trong mã tương đương với việc khai báo nó ở đầu. Điều này cũng có nghĩa là một biến có thể được sử dụng trước khi được khai báo. Hành vi này được gọi là "nâng", vì có vẻ như khai báo biến được chuyển sang đầu hàm hoặc mã toàn cầu.Điều này được hiểu ngầm là: Vì lý do đó, nên luôn luôn khai báo các biến ở đầu phạm vi của chúng (đỉnh của mã toàn cầu và đầu mã chức năng) để rõ ràng các biến nào là hàm được sử dụng (cục bộ) và được giải quyết trên chuỗi phạm vi. Điều quan trọng là chỉ ra rằng chỉ có một tuyên bố của một biến được nâng lên, không phải là khởi tạo của nó. Việc khởi tạo chỉ xảy ra khi đạt được câu lệnh gán. Cho đến lúc đó biến vẫn còn 3 (nhưng đã tuyên bố):
Điều này được hiểu ngầm là:
Vì lý do đó, nên luôn luôn khai báo các biến ở đầu phạm vi của chúng (đỉnh của mã toàn cầu và đầu mã chức năng) để rõ ràng các biến nào là hàm được sử dụng (cục bộ) và được giải quyết trên chuỗi phạm vi.Điều quan trọng là chỉ ra rằng chỉ có một tuyên bố của một biến được nâng lên, không phải là khởi tạo của nó. Việc khởi tạo chỉ xảy ra khi đạt được câu lệnh gán. Cho đến lúc đó biến vẫn còn 'use strict'; function foo() { var x = 1; function bar() { var y = 2; console.log(x); // 1 (function `bar` closes over `x`) console.log(y); // 2 (`y` is in scope) } bar(); console.log(x); // 1 (`x` is in scope) console.log(y); // ReferenceError in strict mode, `y` is scoped to `bar` } foo(); 3 (nhưng đã tuyên bố):Ví dụKhai thác và khởi tạo hai biến Gán hai biến có giá trị chuỗi đơn
Điều này tương đương với: Hãy chú ý đến thứ tự: 0Ở đây, 1 và 2 được khai báo trước khi bất kỳ mã nào được thực thi, nhưng các bài tập xảy ra sau đó. Vào thời điểm 3 được đánh giá, 2 tồn tại nên không có 8 nào được ném và giá trị của nó là 3. Vì vậy, 1 được gán giá trị không xác định. Sau đó, 2 được gán giá trị 9. Do đó, sau dòng đầu tiên, 0, do đó kết quả. 1Khởi tạo một số biếnVí dụ tương tự như trên nhưng với chế độ nghiêm ngặt: 2Phạm vi toàn cầu tiềm ẩn và phạm vi chức năng bên ngoài
Sự chỉ rõĐặc tả ngôn ngữ Ecmascript # Sec-Varable-Statement Tính tương thích của trình duyệt webCó cần thiết phải sử dụng var trong javascript không?Luôn luôn khai báo các biến JavaScript với var, let hoặc const. Từ khóa VAR được sử dụng trong tất cả các mã JavaScript từ năm 1995 đến 2015. Từ khóa LET và const đã được thêm vào JavaScript vào năm 2015. Nếu bạn muốn mã của mình chạy trong các trình duyệt cũ hơn, bạn phải sử dụng VAR.If you want your code to run in older browsers, you must use var .
VAR trong JavaScript đã lỗi thời?VAR từng là một cách để khai báo các biến trong JavaScript.Tuy nhiên, việc khai báo một biến hoặc đối tượng theo cách này bây giờ rất hiếm do cơn ác mộng mà nó có thể tạo ra trong dự án JavaScript của bạn.declaring a variable or object in this way is now very rare due to the nightmare it can create in your JavaScript project.
VAR là gì trong JavaScript là gì?Tạo một biến trong JavaScript được gọi là "khai báo" một biến: var carname;Sau khi khai báo, biến trống (nó không có giá trị).: var carName; After the declaration, the variable is empty (it has no value).
VAR có phải là tùy chọn trong JavaScript không?Sử dụng VAR bên ngoài một chức năng là tùy chọn;Việc gán một giá trị cho một biến không được khai báo ngầm tuyên bố nó là một biến toàn cầu (giờ đây nó là một thuộc tính của đối tượng toàn cầu).Sự khác biệt là một biến được khai báo là một thuộc tính không thể cấu hình của đối tượng toàn cầu trong khi một biến không được khai báo là có thể định cấu hình.; assigning a value to an undeclared variable implicitly declares it as a global variable (it is now a property of the global object). The difference is that a declared variable is a non-configurable property of the global object while an undeclared is configurable. |