2012-02-16 34 views
8

Tôi có câu hỏi khá chung về JavaScript và biến cục bộ. Câu hỏi của tôi là sự khác biệt giữa những điều sau và nếu có bất kỳ điều gì:Xác định lại biến cục bộ bằng var trong JavaScript

function bla 
{ 
    var a = 2; // local variable 
    a = 3;  // the local variable a gets a new value 

    // Would do the following line anything different 
    // (than simply asigning this value?) 
    var a = 4; 
} 

Tôi cho rằng tôi sẽ không nhận được hai biến cục bộ có tên là a. Trong các ngôn ngữ khác, đây thậm chí là một lỗi. Vì vậy, có bất kỳ sử dụng cho điều này?

Trả lời

13

Mọi việc sử dụng var trong một hàm được treo. Các lần sử dụng tiếp theo trên cùng một biến trong cùng phạm vi không có hiệu lực.

Nó có ý nghĩa chính xác giống như a = 4; một mình.

+3

Có bất kỳ chi phí hiệu suất nào để xác định lại biến không? Tôi thích tuyên bố biến cục bộ của mình bên trong if, for, while, v.v. để giữ mã gọn gàng và dễ đọc. Điều này là duy nhất bởi sở thích cá nhân (tôi biết phạm vi của biến nằm trong hàm), và tôi muốn chắc chắn rằng nó không có tác động tiêu cực đến các buổi biểu diễn. –

+5

Đây là câu trả lời cho câu hỏi của tôi: http://jsfiddle.net/U5Zdv/ => nó hoàn toàn không có sự khác biệt về hiệu suất trên IE10 –

Các vấn đề liên quan