2017-12-21 116 views
5

मेरा एक सहकर्मी कोड की ES6 लाइन ...जावास्क्रिप्ट में एक वाक्यविन्यास त्रुटि 'foo' क्यों नहीं है? आप शायद अनुमान लगा सकते हैं कि वह वस्तु <code>{uuid: contentUuid }</code> वापसी करने का इरादा है, लेकिन इसकी एक तीर समारोह के बाद से, घुंघराले ब्रेस <code>{</code> वास्तव में शुरू होता है

return map(orderedContentUuids, contentUuid => { uuid: contentUuid });

लिखा था एक नया ब्लॉक (सही कोड return map(orderedContentUuids, contentUuid => ({ uuid: contentUuid })); होगा)।

लेकिन, अप्रत्याशित रूप से, यह कोड बिना किसी त्रुटि के पारदर्शी और चलाता है। कोई त्रुटि नहीं है क्योंकि uuid: contentUuidcontentUuid का मूल्यांकन करने लगता है।

आप तब देख सकते हैं कि यदि आप अपना जावास्क्रिप्ट कंसोल foo: 'bar' डालते हैं तो यह "bar" का मूल्यांकन करता है।

हू? क्या चल रहा है। चूंकि वह वैध जेएस कब है?

उत्तर

6

ओउप्स। मैं इसे समझ गया।

foo: 'bar' का मूल्यांकन "लेबल" के रूप में किया जाता है, जिसे मुझे एहसास नहीं था कि जावास्क्रिप्ट सुविधा थी।

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/label

+0

दरअसल घुंघराले ब्रेसिज़ इस संदर्भ में एक वस्तु विचार नहीं किया जाएगा। –

संबंधित मुद्दे