Tôi đã bỏ lỡ các dấu chấm phẩy ở một số vị trí trong JavaScript của tôi, nhưng không phải lỗi của nó trong bất kỳ trình duyệt nào. ;
có cần thiết không?Chúng ta có cần dấu chấm phẩy ở cuối?
Trả lời
Khái niệm này được gọi là Chèn dấu chấm phẩy JavaScript hoặc "Chèn dấu chấm phẩy tự động". bài đăng blog: JavaScript Semicolon Insertion: Everything you need to know vạch ra các khái niệm cũng một cách dễ hiểu bằng ví dụ dưới tiêu đề:
- đâu phẩy được phép
- đâu phẩy thể được bỏ qua
- Các quy tắc
Nó thậm chí digs vào official ECMAScript specification về chủ đề.
Nếu không có lỗi trình biên dịch, bạn nên ổn. Tuy nhiên, tốt hơn là bạn nên nhớ sử dụng chúng mọi lúc, vì một số ngôn ngữ mà bạn có thể tham gia, chẳng hạn như mục tiêu-c đều kiên quyết về việc sử dụng chúng.
ghi nhớ quy tắc cú pháp bằng một ngôn ngữ không có bất kỳ lợi ích nào đối với các ngôn ngữ khác. – SingleNegationElimination
Nhưng quy tắc của dấu chấm phẩy quá phổ biến đến nỗi nhớ chung nó có nhiều lợi ích. –
Javascript thực hiện điều gì đó gọi là "chèn dấu chấm phẩy" có nghĩa là bạn thực sự có thể viết mã bỏ dấu chấm phẩy ở một số địa điểm nhất định và về cơ bản chúng sẽ được thêm vào cho bạn khi mã được phân tích cú pháp.
Các quy tắc xung quanh khi điều này xảy ra phức tạp một chút. Để đơn giản, nhiều nhà phát triển chỉ đơn giản giả vờ chèn dấu chấm phẩy không tồn tại.
Đôi khi tôi tưởng tượng về một thế giới nơi chèn dấu chấm phẩy không tồn tại. – JAL
Có một chủ đề thú vị gần đây trên danh sách gửi thư của node.js đáng để đọc: http://groups.google.com/group/nodejs/browse_thread/thread/3166a2bd54e2acf6?pli=1. Kiểm tra phong cách mã hóa của Isaac Schlueter; đó là một cách thú vị để tận dụng ASI - nó không nhất thiết là một điều xấu :) – ShZ
Tài liệu kiểu mã của Isaac Schlueter đã di chuyển: https://github.com/isaacs/npm/blob/master/doc/misc/npm- coding-style.md – Pylinux
Dấu chấm phẩy không bắt buộc đối với lập trình JavaScript, tuy nhiên tôi khuyên bạn nên sử dụng nó. Nó làm cho mã của bạn dễ đọc hơn và thực sự là một thực hành tốt, và hầu như tất cả các ngôn ngữ lập trình thú vị đều sử dụng nó.
Hãy đứng lên và sử dụng nó, nó thuộc vào bạn ngay bây giờ!
Không đúng là dấu chấm phẩy không bắt buộc. Từ thông số: 'Một số câu lệnh ECMAScript ** nhất định phải ** được chấm dứt bằng dấu chấm phẩy.' http://bclary.com/2004/11/07/#a-7.9 –
vâng bạn có quyền tôi làm rõ nhờ Tự động chèn có nhiều trường hợp bạn được phép tránh nó nhưng (một NHƯNG lớn) như tôi đã nói trước khi tôi không nghĩ là thực hành tốt để làm điều đó – Necronet
Trong Scala và Groovy (và Python) bạn không cần dấu chấm phẩy, và nó là thành ngữ hơn không sử dụng chúng. Các ngôn ngữ "tuyệt vời" mà bạn sử dụng dấu chấm phẩy đó là gì? – Pylinux
Bạn thể viết javascript mà không semiconon, bạn chỉ cần chèn chúng nếu bạn bắt đầu một dòng với một parantesis (hoặc một khung [
Các sugarjs lần() chức năng là một ví dụ điển hình:.
<script>
var somthing = 1 + 3
;(5).times(function(n){
console.log(n + " line") //prints "X line" 5 times
})
</script>
bài viết này đã bóc trần hầu hết các huyền thoại surounding javascript và dấu chấm phẩy: link
bạn cũng không cần sử dụng thẻ đóng html, trình duyệt sẽ tự động đóng chúng –
Cá nhân tôi không đồng ý về việc đóng các thẻ html vì hai lý do: 1. Chúng được yêu cầu bởi [XHTML] (http: //codex.wordpress .org/HTML_to_XHTML # All_tags_must_be_closed.2C_even_single_tags) tiêu chuẩn. (Dấu chấm phẩy là tùy chọn trong tiêu chuẩn [ECMA] (http://www.ecma-international.org/ecma-262/5.1/#sec-7.9)) 2. Họ cung cấp cấu trúc cho mã của bạn, họ nói điều gì đó về nơi các thẻ kết thúc. (Trong dấu chấm phẩy JavaScript cho biết dòng cuối cùng, và chúng ngay lập tức chảy bởi một dòng mới nói giống nhau) Tôi không có nghĩa là âm thanh khắc nghiệt, nếu bạn và nhóm của bạn viết mà không đóng thẻ thì Godsspeed :-) – Pylinux
@DavidFregoli trình duyệt sẽ nhận được rất nhiều sai thời gian –
Để nói rằng viết mã với phẩy làm cho nó nhiều readab le là ngớ ngẩn. Nó làm cho mã của bạn thêm CLUTTERED. Nhìn vào mã trên trang này mà không có dấu chấm phẩy và cho tôi biết nó không thể đọc được. Đó là dễ đọc hơn, ít lộn xộn, sạch hơn và thanh lịch hơn. Dấu chấm phẩy là xấu xí và không cần thiết. Xem bài viết này: http://mislav.uniqpath.com/2010/05/semicolons/
Không thể không đồng ý hơn. Tôi đã nhìn thấy mã với vài sau đó/khối khác và không có dấu chấm phẩy và tôi không thể tin tưởng nó ... giống như một điệu nhảy saber trên một sàn mới sáp, được sử dụng để được bảo lưu như một trò đùa về ngôn ngữ C. – Kim
- 1. Chúng ta có cần dấu chấm phẩy sau khi khai báo hàm không?
- 2. Dấu chấm phẩy Perl ở cuối câu lệnh
- 3. Dấu chấm phẩy có cần thiết trong SQL không?
- 4. Dấu chấm phẩy Razor/JavaScript và dấu chấm phẩy
- 5. làm thế nào để loại bỏ dấu phẩy nếu chuỗi có dấu phẩy ở cuối
- 6. HttpWebRequest với URL có dấu chấm ở cuối
- 7. Dấu chấm phẩy thừa ở cuối dòng trong tập lệnh shell?
- 8. Đôi, dấu phẩy và dấu chấm
- 9. Dấu chấm phẩy trong C++?
- 10. Dấu chấm phẩy ở cuối các câu lệnh if và các hàm trong C
- 11. Tại sao Java không hiển thị lỗi cho dấu chấm phẩy kép ở cuối câu lệnh?
- 12. Dấu chấm phẩy tùy chọn trong C++
- 13. Tại sao chúng ta cần đặt const ở cuối đầu của hàm nhưng tĩnh lúc đầu?
- 14. Dấu chấm phẩy trên jQuery
- 15. Dấu chấm phẩy sau hàm
- 16. Aptana "Thiếu dấu chấm phẩy" cảnh báo
- 17. làm cách nào để xóa dấu phẩy ở cuối chuỗi?
- 18. URL có thể chứa dấu chấm phẩy không?
- 19. loại bỏ dấu chấm ở cuối văn bản
- 20. Javascript Regex: thay thế dấu chấm cuối cùng cho một dấu phẩy
- 21. Sử dụng dấu chấm phẩy bên timeit
- 22. Dấu phẩy cuối dòng nào trong Matlab?
- 23. Dấu chấm phẩy thông minh Vim
- 24. Dấu chấm phẩy có thực sự cần thiết sau khi khai báo trong x ++ không?
- 25. Tại sao bạn có thể có dấu phẩy ở cuối bộ khởi tạo bộ sưu tập?
- 26. dấu chấm phẩy sau dấu ngoặc nhọn trong c + +
- 27. Dấu chấm ở cuối phao có cho thấy thiếu chính xác không?
- 28. Tại sao chúng ta cần strdup()?
- 29. Dấu chấm phẩy XCode sau khi tự động hoàn thành
- 30. Mẫu regex chấp nhận giá trị được phân tách bằng dấu phẩy hoặc dấu chấm phẩy
Theo nguyên tắc, ngắt dòng có thể thay thế các dấu chấm phẩy bằng một vài ngoại lệ trực quan: (1) các câu lệnh trống: 'while (true);', (2) bên trong cú pháp vòng lặp for 'for (;;)' và (3) khi thay thế sẽ phá vỡ mã, ví dụ: 'a = b \ n + c' hoặc' $ http (...) \ n .success (...) 'sẽ là mã không hợp lệ nếu \ n là thay thế, vì vậy nó chỉ đơn giản là không. – VinGarcia
Ops, tôi bỏ lỡ 2 trường hợp góc hiếm nhưng quan trọng sẽ không phân tích cú pháp như mong đợi mà không có dấu chấm phẩy: 'a = b \ n (hàm (...) {...})() 'sẽ phân tích như thể \ n không tồn tại, và' a = b \ n [1,2,3] .forEach (...) 'cũng sẽ phân tích như thể nó là một biểu thức duy nhất. Vì vậy, trong những trường hợp này, một dấu chấm phẩy là cần thiết. – VinGarcia