ES6

2016-01-22 29 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

अर्धविराम अप्रचलित नहीं हो गए हैं, स्वचालित अर्धविराम सम्मिलन हमेशा जेएस का हिस्सा रहा है। स्क्वायर ब्रैकेट के साथ एक लाइन शुरू करना एक ऐसा मामला है जहां अर्ध कोलन जोड़ना आपको एएसआई त्रुटि से बचाता है 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] संपत्ति का उपयोग के रूप में मूल्यांकन किया जाएगा। जो पूरी तरह से ठीक जेएस है, मैं व्यक्तिगत रूप से नहीं सोचता कि अर्धविराम जोड़ना इतना बड़ा सौदा है इसलिए मैं उनका उपयोग करता रहता हूं।

+12

चलिए इसे "संपत्ति एक्सेस" कहते हैं, न कि "सरणी का अनुक्रमणिका"। '0 [6] 'में, कोई सरणी नहीं है। – Bergi

+5

हमेशा अर्धविरामों का उपयोग करने के विकल्प के रूप में, आपके लिए इन अस्पष्ट परिदृश्यों को पकड़ने के लिए लिफ्टिंग टूल का उपयोग किया जा सकता है, उदा। http://eslint.org/docs/rules/no-unexpected-multiline, इस तरह आप कोई अर्धविराम के सामान्य नियम को रख सकते हैं, लेकिन जहां आवश्यक हो वहां उन्हें जोड़ें। – mikeapr4