2016-01-22 81 views
34

我在印象之下使用ES6分號變得過時。然而,我今天這個碰上了:在ES6中使用分號

不起作用:

let i = 0 

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

作品:

let i = 0; 

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

爲什麼是分號必要在這裏,什麼時候應該使用它們?

+7

你從哪裏得到這個想法,分號變得過時了?!? – Amit

+6

分號還沒有過時,自動分號插入一直是js的一部分。用方括號開始一行是添加一個半冒號可以避免asi錯誤的情況https://youtu.be/Qlr-FGbhKaI?t=5m58s – Christine

+6

[自動插入分號的規則](http:/ /www.ecma-international.org/ecma-262/6.0/#sec-automatic-semicolon-insertion)在ES2015中的基本相同,因爲它始終是 – adeneo

回答

28

沒有分號[1,2,3,4,5,6]將被評估爲屬性訪問。 JS非常好,我個人不認爲添加分號是如此重要,所以我繼續使用它們。

+12

我們稱之爲「屬性訪問」,而不是「數組的索引」。在'0 [6]'中,沒有數組。 – Bergi

+5

作爲總是使用分號的替代方法,可以使用linting工具來爲您捕獲這些不明確的場景,例如, http://eslint.org/docs/rules/no-unexpected-multiline,通過這種方式,您可以保留無分號的一般規則,但在必要時添加它們。 – mikeapr4