Để đơn giản hóa các quy tắc về dấu chấm phẩy
Mọi dòng bắt đầu bằng dấu (
, [
`hoặc bất kỳ toán tử nào (/, +, - là những toán tử hợp lệ duy nhất), phải bắt đầu bằng dấu chấm phẩy.
func()
;[0].concat(myarr).forEach(func)
;(myarr).forEach(func)
;`hello`.forEach(func)
;/hello/.exec(str)
;+0
;-0
Điều này ngăn cản một
func()[0].concat(myarr).forEach(func)(myarr).forEach(func)`hello`.forEach(func)/hello/.forEach(func)+0-0
quái dị.
Ghi chú bổ sung
Để đề cập đến những gì sẽ xảy ra: dấu ngoặc sẽ lập chỉ mục, dấu ngoặc sẽ được coi là tham số của hàm. Backtick sẽ biến đổi thành một mẫu được gắn thẻ và regex hoặc các số nguyên có dấu rõ ràng sẽ chuyển thành các toán tử. Tất nhiên, bạn chỉ có thể thêm dấu chấm phẩy vào cuối mỗi dòng. Tuy nhiên, thật tốt khi bạn đang tạo mẫu nhanh chóng và bỏ dấu chấm phẩy.
Ngoài ra, việc thêm dấu chấm phẩy vào cuối mỗi dòng sẽ không giúp bạn thực hiện những điều sau đây, vì vậy hãy ghi nhớ những câu như
return // Will automatically insert semicolon, and return undefined.
(1+2);
i // Adds a semicolon
++ // But, if you really intended i++ here, your codebase needs help.
Trường hợp trên sẽ xảy ra để trả về / tiếp tục / break / ++ / -. Bất kỳ linter nào cũng sẽ mắc lỗi này với mã chết hoặc lỗi cú pháp ++ / - (++ / - sẽ không bao giờ xảy ra trên thực tế).
Cuối cùng, nếu bạn muốn nối tệp hoạt động, hãy đảm bảo mỗi tệp kết thúc bằng dấu chấm phẩy. Nếu bạn đang sử dụng chương trình gói (được khuyến nghị), chương trình sẽ tự động thực hiện việc này.