2012-02-23 19 views
5

Là một C# coder học JavaScript Tôi tìm thấy điều này rất dễ đọc hơn:Tôi có thể định dạng mã JavaScript/JQuery của tôi bằng các dấu ngắt dòng và các tab không?

$(this) 
    .first() 
    .prepend("<h3>Title</h3>") 
    .end() 
    .removeClass("hidden"); 

hơn thế này:

$(this).first().prepend("<h3>Title</h3>").end().removeClass("hidden"); 

Tuy nhiên JSLint phàn nàn về cái đầu tiên. Nhưng tôi không hiểu tại sao. Điều này sẽ khiến tôi gặp rắc rối ở bất cứ đâu?

Cập nhật: Bạn có thể đặt giá trị của thụt đầu dòng ở cuối trang jslint và do đó làm cho mã của bạn "hợp lệ". Có một ngã ba của JsLint, http://www.jshint.com/, cũng chấp nhận các tab.

+0

JSLINT nói gì? – Sarfraz

+1

** Tại sao ** là khoảng trống giữa phần tử trước đó và dấu chấm –

+1

Là một lưu ý phụ, tại sao bạn sử dụng '$ (this) .first()'? Nếu 'this' là một phần tử,' $ (this) 'này chỉ chứa một phần tử. – pimvdb

Trả lời

1

Cảnh báo từ JSLin t là một vấn đề của hương vị. Bất cứ ai đã viết nó thấy rằng việc sắp xếp mọi thứ theo cách này có ý nghĩa hơn:

$(this). 
    first(). 
    prepend("<h3>Title</h3>"). 
    end(). 
    removeClass("hidden"); 

Tôi cho một tìm cách tiếp cận của bạn rõ ràng hơn vì chấm nói với tôi bất cứ điều gì mà đến sau khi nó thuộc về dòng trên.

Bạn an toàn với cách bạn đang viết, nhưng tôi thực sự muốn thấy ai đó (nhà phát triển jslint) cho chúng tôi biết cách vô hiệu hóa thư đó.

+0

Ở cuối trang jslint, bạn có thể đặt ít nhất khoảng không gian thụt lề được cho phép. –

+0

Vâng, tôi đã đọc các câu trả lời khác. Thật tuyệt khi biết nhưng tôi sử dụng các tab. Tôi đã xác định được lỗi cụ thể này trong nguồn của jslint, nhưng không thể vô hiệu hóa nó. Có lẽ tôi nên thực hiện một yêu cầu tính năng về điều này, bởi vì nó thực sự không có kinh doanh của họ như thế nào tôi thụt lề dòng của tôi. Sau khi tất cả, nó không phải là python! Liệu tôi có sai? –

+0

Bên cạnh đó, tôi sử dụng jslint nhị phân và các lỗi xuất hiện trong trình soạn thảo văn bản của tôi. –

0

Mã của bạn là hoàn toàn tốt đẹp nếu bạn định dạng nó như JSLint này không nên phàn nàn (Vâng, tất nhiên nó than phiền về $ không được xác định nhưng phần còn lại của mã là ok)

$(this). 
    first(). 
    prepend("<h3>Title</h3>"). 
    end(). 
    removeClass("hidden"); 
3

Vấn đề này với mã trên JSLint là do sự identation: nếu bạn thụt nó với 4 chỗ đang có không có lỗi

(di chuyển xuống các tùy chọn và thay đổi cài đặt identation nếu giá trị mặc định không phải là những gì bạn muốn)

+0

Điều đó làm việc, bạn có biết tại sao bốn không gian là số ma thuật? –

+0

xem ở cuối trang jslint. :) – fcalderan

0

Một thực hành mã hóa tốt là giữ mã của bạn có thể đọc được bởi bạn và bất cứ ai khác và đó là một ví dụ

$(this).first() 
.prepend("<h3>Title</h3>") 
.end() 
.removeClass("hidden"); 

if(something) 
{ 
    // do something 
} 
else 
{ 
    //do something else 
} 

Bạn nên luôn luôn sử dụng thụt lề và đó là một thực hành mã hóa tốt.

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