2016-01-22 19 views
34

Tôi đã ở dưới dấu chấm phẩy hiển thị đã trở nên lỗi thời với ES6. Tuy nhiên, tôi tình cờ gặp ngày hôm nay:Sử dụng dấu chấm phẩy trong ES6

Không làm việc:

let i = 0 

[0, 1, 2, 3, 4, 5, 6].forEach(item => console.log(item)) 

trình:

let i = 0; 

[0, 1, 2, 3, 4, 5, 6].forEach(item => console.log(item)) 

Tại sao là dấu chấm phẩy cần thiết ở đây, và khi nào tôi nên sử dụng chúng?

+7

Bạn lấy ý tưởng này ở đâu khi dấu chấm phẩy trở nên lỗi thời ??!? – Amit

+6

dấu chấm phẩy đã không trở nên lỗi thời, chèn dấu chấm phẩy tự động luôn là một phần của js. Bắt đầu một dòng với một dấu ngoặc vuông là một trường hợp khi thêm dấu chấm phẩy giúp bạn tránh khỏi lỗi asi https://youtu.be/Qlr-FGbhKaI?t=5m58s – Christine

+6

[quy tắc để chèn dấu chấm phẩy tự động] (http://www.ecma-international.org/ecma-262/6.0/#sec-automatic-semicolon-insertion) về cơ bản vẫn giống nhau trong ES2015 vì nó luôn là – adeneo

Trả lời

28

Nếu không có dấu chấm phẩy [1,2,3,4,5,6] sẽ được đánh giá là quyền truy cập thuộc tính. Đó là JS hoàn toàn tốt, cá nhân tôi không nghĩ rằng việc thêm dấu chấm phẩy là một việc lớn như vậy vì vậy tôi tiếp tục sử dụng chúng.

+12

Hãy gọi nó là "quyền truy cập thuộc tính", không phải "chỉ mục của một mảng". Trong '0 [6]', không có mảng. – Bergi

+5

Để thay thế cho việc luôn sử dụng dấu chấm phẩy, các công cụ linting có thể được sử dụng để nắm bắt các tình huống mơ hồ này cho bạn, ví dụ: http://eslint.org/docs/rules/no-unexpected-multiline, theo cách này bạn có thể giữ nguyên quy tắc chung không có dấu chấm phẩy, nhưng thêm chúng vào những nơi cần thiết. – mikeapr4

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