Từ khóa var có cần thiết trong JavaScript không?
JavaScript là một ngôn ngữ mạnh mẽ vì bạn có thể viết toàn bộ phần mềm mà không cần sử dụng bất kỳ ngôn ngữ lập trình nào khác Show
function run() {var foo = "Foo";5 từng là một cách khai báo 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 hiện 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 var obj = {} Bắt đầu với ECMAScript 6, câu lệnh function run() {var foo = "Foo";6 đã được giới thiệu Sau đây là tổng quan ngắn gọn về lý do tại sao function run() {var foo = "Foo";5 không còn hoặc hiếm khi được sử dụng trong các dự án JavaScript để khai báo biến
1. Phạm vi - lý do chính để tránh varPhạm vi là sự khác biệt chính giữa var và let Các biến function run() {var foo = "Foo";5 nằm trong phạm vi thân hàm ngay lập tức (do đó có phạm vi hàm) trong khi các biến function run() {var foo = "Foo";6 nằm trong phạm vi khối bao quanh ngay lập tức được biểu thị bằng function run() {var foo = "Foo";1 Hãy hiểu điều đó có nghĩa là gì thông qua mã Có thể bạn quan tâmfunction run() {var foo = "Foo"; Lý do tại sao từ khóa function run() {var foo = "Foo";6 được đưa vào ngôn ngữ này là do phạm vi chức năng khó hiểu và là một trong những nguyên nhân chính gây ra lỗi trong JavaScript 2. cẩu - không phải lo lắng cho function run() {var foo = "Foo";let bar = "Bar";console.log(foo, bar); // Foo Bar{ var moo = "Mooo" let baz = "Bazz"; console.log(moo, baz); // Mooo Bazz}console.log(moo); // Moooconsole.log(baz); // ReferenceError}run();6Đầu tiên, chúng ta cần tìm hiểu xem cẩu là gì
function run() { Nhưng không phải lo lắng. function run() {var foo = "Foo";4 sẽ không để điều đó xảy ra function checkHoisting() { 3. Ràng buộc đối tượng toàn cục
var foo = "Foo"; // globally scoped 4. khai báo lại. Không tốt với Let
'use strict'; Kiểm tra chủ đề thực tế để biết thêm hoặc viết trong các bình luận nếu bạn nghĩ rằng tôi đã bỏ lỡ bất cứ điều gì. Tôi sẽ thêm nó và cập nhật bài viết cho phù hợp Vấn đề là, function run() {var foo = "Foo";6 tránh nguồn gây hiểu lầm, đặc biệt. dành cho các lập trình viên với các kỳ vọng được đặt bởi các ngôn ngữ có phạm vi khối. Một function run() {var foo = "Foo";5 có phạm vi chức năng (nó khai báo một biến hiển thị trong toàn bộ chức năng) mặc dù có vẻ như nó có phạm vi khối function run() {var foo = "Foo";5 có thể vẫn hữu ích trong trường hợp cực đoan như mã do máy tạo ra, nhưng tôi đang cố gắng hết sức ở đó ( function run() {var foo = "Foo";9 cũng mới và có phạm vi khối. Sau function run() { 0, bạn có thể gán lại cho function run() { 1, trong khi sau function run() { 2, bạn không thể gán lại cho 0. Điều đó thường tốt hơn vì nó ngăn thứ gì đó vô tình thay đổi từ bên dưới bạn. Nhưng để rõ ràng, bạn vẫn có thể sửa đổi đối tượng 1 trừ khi bạn đóng băng nó. )Trên thực tế, ấn tượng của bạn là phù hợp với ES6. Thông qua function run() {var foo = "Foo";6 và function run() {var foo = "Foo";9. Ngừng sử dụng function run() {var foo = "Foo";5 (Trong một màn trình diễn khác của "The Better Parts", Doug nói lý do tại sao 5 được thêm vào thay vì sửa. 6 tạo ra một số kết quả "đáng ngạc nhiên", vì vậy chỉ cần áp dụng 5. )
đưa ra một ví dụ trong đó function run() {var foo = "Foo";5 không hoạt động như dự kiến. Ví dụ của họ là một ví dụ thực tế đặt _____160 trình xử lý trong một trang web. Đây là một trường hợp thử nghiệm nhỏ hơn function run() {var foo = "Foo";3 function run() {var foo = "Foo";5 làm chúng tôi vấp ngã vì tất cả các lần lặp lại chia sẻ cùng một biến function run() {var foo = "Foo";62 trong phạm vi chức năng, có giá trị function run() {var foo = "Foo";63 sau khi vòng lặp kết thúc
function run() {var foo = "Foo";6 khai báo các biến trong phạm vi khối. function run() {var foo = "Foo";5 khiến chúng ta bối rối khi đề cập đến cùng một biến trong toàn hàm Tôi có nên sử dụng var trong JavaScript không?Sự thật là không ai nên sử dụng var trong bất kỳ mã JavaScript nào ngoại trừ bài học lịch sử . Thậm chí sau đó, nó sẽ đi kèm với một chú thích có nội dung như "làm ơn đừng bao giờ làm điều này. " Let và const đã có mặt trên mọi trình duyệt chính trong 6 năm qua. Điều này thực sự, thực sự cổ xưa trong những năm trước.
Từ khóa var có phải là tùy chọn trong JavaScript không?Có đúng không?
Tại sao tôi không nên sử dụng var trong JavaScript?Phạm vi — lý do chính để tránh var
. scoped to the immediate function body (hence the function scope) while let variables are scoped to the immediate enclosing block denoted by { } .
Var có còn hoạt động trong JavaScript 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. |