Hướng dẫn when should you use var in javascript? - khi nào bạn nên sử dụng var trong javascript?

Hướng dẫn when should you use var in javascript? - khi nào bạn nên sử dụng var trong javascript?

Từ khóa var 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, var 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 var để 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 var 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ới

VAR 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ọ,

(function(){
  a = "mundo"
  alert("Hola, " + a )
})()
0 và
(function(){
  a = "mundo"
  alert("Hola, " + a )
})()
1 đã 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 var 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ông

VAR 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

(function(){
  a = "mundo"
  alert("Hola, " + a )
})()
3 hoặc khối
(function(){
  a = "mundo"
  alert("Hola, " + a )
})()
4. Vì vậy, một biến được khai báo với var 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ị
(function(){
  a = "mundo"
  alert("Hola, " + a )
})()
6. 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, var là anh hùng của bạn.

Phải có cách tốt hơn

Nế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ề var. Sự thật là, không ai nên sử dụng var 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."

var a = "A"
(function(){
  var a = "B"
  alert(a) //B
})()

alert(a); //A
0 và
(function(){
  a = "mundo"
  alert("Hola, " + a )
})()
1 đã 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. var 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ẻ.

var a = "A"
(function(){
  var a = "B"
  alert(a) //B
})()

alert(a); //A
0 giữ lại hệ thống loại linh hoạt của JavaScript trong khi cho phép phân tách khối.
var a = "A"
(function(){
  var a = "B"
  alert(a) //B
})()

alert(a); //A
4 tạo ra một-bạn đoán nó-biến không đổi trong phạm vi khối.
var a = "A"
(function(){
  var a = "B"
  alert(a) //B
})()

alert(a); //A
4 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
(function(){
  a = "mundo"
  alert("Hola, " + a )
})()
1 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 var 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 var. 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 var.

63

3.2203 Huy hiệu vàng20 Huy hiệu bạc35 Huy hiệu Đồng
Learn more.

Có thể là câu hỏi khá dễ dàng.

Tôi nên sử dụng từ khóa var ở đâu trong JavaScript. Đối với tôi dường như sử dụng nó hoặc không có tác dụng tương tự (nhưng tất nhiên tôi vẫn đang học ngôn ngữ)

Chẳng hạn, cả hai đều có vẻ giống với tôi:

(function(){
  var a = "mundo"
  alert("Hola, " + a )
})()

(function(){
  a = "mundo"
  alert("Hola, " + a )
})()

Nhưng tất nhiên phải có một ví dụ phức tạp hơn trong đó sự khác biệt hiển thị.

Đã hỏi ngày 22 tháng 3 năm 2011 lúc 22:44Mar 22, 2011 at 22:44

OscarryzoscarryzOscarRyz

Phim thương hiệu vàng 193K110110 gold badges378 silver badges563 bronze badges

0

Khi bạn sử dụng var, bạn đang khởi tạo một biến trong phạm vi hiện tại. Điều này cũng sẽ ngăn chặn truy cập các biến có tên giống nhau trong phạm vi cao hơn, trong phạm vi hiện tại.

Trong ví dụ đầu tiên của bạn, 'A' đang được khởi tạo và được đặt trong phạm vi hàm. Trong ví dụ thứ hai của bạn, 'A' đang được đặt ngoài phạm vi chức năng do thiếu var

Với var:

var a = "A"
(function(){
  var a = "B"
  alert(a) //B
})()

alert(a); //A

Không có var:

var a = "A";
(function(){
  a = "B"
  alert(a) //B
})()

alert(a) //B

Đã trả lời ngày 22 tháng 3 năm 2011 lúc 22:46Mar 22, 2011 at 22:46

Hướng dẫn when should you use var in javascript? - khi nào bạn nên sử dụng var trong javascript?

5

Sử dụng var:

var a = 'world';   
myfunction = function(){
  var a = "mundo"
  alert("Hola, " + a )
}

myfunction();  //alerts 'hola, mundo'
alert(a);  //alerts 'world';

Không sử dụng var:

var a = 'world';   
myfunction = function(){
  a = "mundo"
  alert("Hola, " + a )
}

myfunction();  //alerts 'hola, mundo'
alert(a);  //alerts 'mundo'

Đã trả lời ngày 22 tháng 3 năm 2011 lúc 22:50Mar 22, 2011 at 22:50

Hướng dẫn when should you use var in javascript? - khi nào bạn nên sử dụng var trong javascript?

Sam Dufelsam DufelSam Dufel

17.4K3 Huy hiệu vàng48 Huy hiệu bạc51 Huy hiệu Đồng3 gold badges48 silver badges51 bronze badges

Tôi nghĩ rằng bạn cần phải làm mới bản thân trên phạm vi đối tượng JavaScript.

Sử dụng từ khóa "VAR" sẽ đặt biến của bạn ở phạm vi hàng đầu (toàn cầu). Điều này có nghĩa là nếu một hàm sử dụng cùng một biến, biến "var" mà bạn đã khai báo sẽ ghi đè biến (không VAR) trong hàm của bạn ... phạm vi JavaScript

Đã trả lời ngày 22 tháng 3 năm 2011 lúc 22:51Mar 22, 2011 at 22:51

Hướng dẫn when should you use var in javascript? - khi nào bạn nên sử dụng var trong javascript?

Nó càu nhàuIt Grunt

3.2203 Huy hiệu vàng20 Huy hiệu bạc35 Huy hiệu Đồng3 gold badges20 silver badges35 bronze badges

0

Nếu VAR không được sử dụng chức năng bên trong, JS sẽ tìm nó ở trên, vì vậy trong trường hợp bạn sử dụng Save Vars trong các chức năng khác nhau, chúng có thể xung đột. Nó luôn luôn đáng để sử dụng một var nếu bạn đang xác định biến mới.

Đã trả lời ngày 22 tháng 3 năm 2011 lúc 22:50Mar 22, 2011 at 22:50

Sam Dufelsam DufelAgonych

17.4K3 Huy hiệu vàng48 Huy hiệu bạc51 Huy hiệu Đồng4 silver badges4 bronze badges

0

Có bất kỳ lý do để sử dụng var?

Một số đối số cho loại biến VAR Nó cũng ngắn hơn và dễ đọc hơn, so với từ điển.VAR yêu cầu ít thay đổi mã hơn nếu loại trả về của một cuộc gọi phương thức thay đổi.Bạn chỉ phải thay đổi khai báo phương thức, không phải mọi nơi được sử dụng.shorter and easier to read, for instance, than Dictionary . var requires less code changes if the return type of a method call changes. You only have to change the method declaration, not every place it's used.

Tại sao mọi người vẫn sử dụng var javascript?

Đối với bạn câu hỏi trực tiếp, VAR có lẽ vẫn được sử dụng vì lý do di sản.Nó được hỗ trợ trong tất cả các phiên bản của JavaScript và nó sẽ là một phiền phức để thay đổi mọi ví dụ trên internet.Ưu điểm thực sự duy nhất của VAR là khả năng tương thích của nó.legacy reasons. It is supported in all versions of JavaScript and it would be a bother to change every example on the internet. The only real advantage to var is it's compatibility.