google chrome - ECMAScript 6 का उपयोग करना




google-chrome google-chrome-extension (4)

ईसीएमएस्क्रिप्ट अगला (ईएस 6, ईएस 7, आदि) का उपयोग करना

सभी दर्शकों के लिए नई सुविधाएं सुनिश्चित करने के लिए, आप एक ट्रांसलेटर का उपयोग करना चाहेंगे। एक ट्रांसलेटर आपको अपने कोड को कोड में परिवर्तित करके आज की नवीनतम ईसीएमएस्क्रिप्ट सुविधाओं का उपयोग करने की अनुमति देता है जो सभी ब्राउज़रों में संगत है। नीचे कुछ अच्छे ट्रांसपेलर हैं।



एक ट्रांसलेटर स्थापित नहीं करना चाहते हैं, या आप उन सुविधाओं के साथ खेलना चाहते हैं जो अभी तक आपके ट्रांसलेटर द्वारा समर्थित नहीं हैं?

आप क्रोम: // झंडे / # सक्षम-जावास्क्रिप्ट-सद्भावना और जावास्क्रिप्ट सद्भाव ध्वज को सक्षम करके अपने ब्राउज़र में प्रयोगात्मक ईसीएमएस्क्रिप्ट सुविधाओं को सक्षम कर सकते हैं । कुछ विशेषताओं के लिए, आपको उस ध्वज सक्षम के साथ क्रोम कैनरी का उपयोग करना पड़ सकता है।


तीर कार्यों का उपयोग करना

यह प्रश्न विशेष रूप से तीर कार्यों का उपयोग करके उल्लेख किया गया है। आईई और ओपेरा मिनी को छोड़कर तीर फ़ंक्शंस अब सभी ब्राउज़रों में समर्थित हैं। caniuse देखें।

यदि आप तीर कार्यों के साथ खेलना चाहते थे तो यह थोड़ा मुश्किल होता था। नीचे दिया गया इतिहास दिखाता है कि इस सुविधा के साथ खेलने के लिए समय में विभिन्न बिंदुओं पर क्या हुआ।

1) पहले, तीर फ़ंक्शंस क्रोम कैनरी में chrome://flags/#enable-javascript-harmony ध्वज सक्षम के साथ काम करता था। ऐसा लगता है कि इस कार्यक्षमता को कम से कम आंशिक रूप से संस्करण 39 द्वारा कार्यान्वित किया गया था।

2) फिर, तीर फ़ंक्शंस जहां जावास्क्रिप्ट हार्मनी ध्वज के पीछे Google क्रोम में उपलब्ध कराया गया था।

3) और अंत में, Google क्रोम 45 में , तीर फ़ंक्शन जहां डिफ़ॉल्ट रूप से सक्षम किया गया है।

आप अन्य नई ईसीएमएस्क्रिप्ट सुविधाओं के साथ एक समान पैटर्न होने की उम्मीद कर सकते हैं।

मैं अपने ब्राउज़र के कंसोल में ECMAScript 6 कोड चलाने का एक तरीका ढूंढ रहा हूं लेकिन अधिकांश ब्राउज़र कार्यक्षमता का समर्थन नहीं करते हैं जिसे मैं ढूंढ रहा हूं। उदाहरण के लिए फ़ायरफ़ॉक्स एकमात्र ब्राउज़र है जो तीर कार्यों का समर्थन करता है।

क्या कोई तरीका है (एक्सटेंशन, उपयोगकर्तास्क्रिप्ट, आदि) मैं इन सुविधाओं को क्रोम पर चला सकता हूं?


2015 नवंबर तक, Firefox और Edge ईएस 6 दौड़ का नेतृत्व कर रहे हैं, अगर आप उन कार्यों का प्रयोग करना चाहते हैं जो क्रोम की कमी का प्रयोग करना चाहते हैं तो उनका उपयोग करें। एज में class/subclass और फ़ायरफ़ॉक्स में Proxy ; उनके बीच आपके पास लगभग सभी ईएस 6 विशेषताएं हैं

यदि आपको क्रोम कंसोल में ES6 का उपयोग करना चाहिए, तो एक सरल, प्रयास किया गया और सही तरीका है:

धैर्य रखें।

ब्राउज़र ईएस 6 को अपनाने वाले हैं - यहां तक ​​कि सफारी, जो अपने एचटीएमएल 5 मानकों पर अपने पैरों को खींच रहा है। Google समय दें और वे ईएस 6 सुविधाओं को एक-एक करके लागू करेंगे। उदाहरण के लिए अब उत्पादन चैनल और फ्लैग के बिना तीर फ़ंक्शन उपलब्ध हैं।

एक्सटेंशन की अपेक्षा न करें; आप लाइन से ES6 से ES5 लाइन का अनुवाद नहीं कर सकते हैं, इसलिए हम केवल Babel साथ कंसोल का extend नहीं कर सकते हैं।

यह सच है कि एक प्रयोग जेएस ध्वज है, लेकिन यह अच्छे कारणों से मौजूद है। वी 8 में प्रॉक्सी है लेकिन पुरानी (गैर-मानक) वाक्यविन्यास में और इसमें सुरक्षा समस्या है । इसका विनाश भी अधूरा है: आप पाएंगे कि कुछ मामलों में यह काम करता है, आने वाले मामलों में यह नहीं होता है।

यदि आप सिर्फ ईएस 6 खेलना चाहते हैं, तो बस एज / फ़ायरफ़ॉक्स के साथ खेलें। वे दोनों लगभग पूरे बेबेल को कवर करते हैं, कंसोल और डिबगर होते हैं, और इसमें विशेषताएं हैं जो बेबेल प्रदान नहीं कर सकती हैं।


बस बंद करने के लिए सख्त मोड का उपयोग करें (आवश्यक नहीं है, लेकिन यह एक अच्छा तरीका है) और क्रोम ES6 के रूप में आपके कोड को निष्पादित करने में सक्षम होगा ...

(function(){
  'use strict';
  //your ES6 code...
})();

यहां एक उदाहरण ... http://jsbin.com/tawubotama/edit?html,js,console,output , output उपयोग स्ट्रिक मोड लाइन को निकालने का प्रयास करें, और फिर से प्रयास करें, कंसोल पर एक त्रुटि लॉग हो जाएगी।


क्रोम में, अधिकांश ES6 विशेषताएं "प्रायोगिक जावास्क्रिप्ट सुविधाओं" नामक ध्वज के पीछे छिपी हुई हैं। chrome://flags/#enable-javascript-harmony , इस ध्वज को सक्षम करें, क्रोम को पुनरारंभ करें और आपको कई नई सुविधाएं मिलेंगी।

एरो फ़ंक्शन अभी तक वी 8 / क्रोम में लागू नहीं किए गए हैं , इसलिए यह ध्वज तीर फ़ंक्शंस को "अनलॉक" नहीं करेगा।

चूंकि तीर फ़ंक्शंस एक वाक्यविन्यास परिवर्तन होते हैं, इसलिए जावास्क्रिप्ट को पार्स किए जाने के तरीके को बदलने के बिना इस वाक्यविन्यास का समर्थन करना संभव नहीं है। यदि आप ES6 में विकास करना पसंद करते हैं, तो आप ES6 कोड लिख सकते हैं और सभी मौजूदा (आधुनिक) ब्राउज़र के साथ संगत जावास्क्रिप्ट कोड उत्पन्न करने के लिए ES6-to-ES5 कंपाइलर का उपयोग कर सकते हैं।

उदाहरण के लिए, https://github.com/google/traceur-compiler । लेखन के रूप में, यह ES6 की सभी नई वाक्यविन्यास सुविधाओं का समर्थन करता है। इस उत्तर के शीर्ष पर वर्णित ध्वज के साथ, आप वांछित परिणाम के बहुत करीब आ जाएंगे।

यदि आप सीधे कंसोल से ES6 सिंटैक्स को चलाने के लिए चाहते हैं, तो आप कंसोल के जावास्क्रिप्ट मूल्यांकनकर्ता को ओवरराइट करने का प्रयास कर सकते हैं (जैसे कि कोड को निष्पादित करने से पहले Traceur preprocesor चलाया जाता है)। यदि आप ऐसा करने की कल्पना करते हैं, तो डेवलपर टूल के व्यवहार को संशोधित करने के तरीके के बारे में जानने के लिए इस उत्तर पर एक नज़र डालें।







ecmascript-6