2011-02-04 6 views
11

मैं मोज़िला के जावास्क्रिप्ट के निरंतर विकास पर संस्करण 1.8.5: https://developer.mozilla.org/en/JavaScript के माध्यम से पढ़ रहा हूं।भाषा सुविधाओं के संदर्भ में ईसीएमएस्क्रिप्ट 5 और जावास्क्रिप्ट 1.8.5 के बीच सहसंबंध क्या है?

मेरा प्रश्न है: भाषा सुविधाओं के संदर्भ में जावास्क्रिप्ट 1.8.5+ और ईसीएमएस्क्रिप्ट 5+ के बीच सहसंबंध क्या है? मोज़िला की नई जावास्क्रिप्ट विशेषताओं (जेनरेटर, सरणी समझ, इत्यादि) का कोई मौका ईसीएमएस्क्रिप्ट का हिस्सा बन जाएगा?

मैं सिर्फ एक हैंडल प्राप्त करना चाहता हूं कि यह जावास्क्रिप्ट 1.8.5 फीचर्स (और उन्हें गैर-सहायक ब्राउज़र में तैरने के लिए काम करने) के लायक है या मुझे जेएस 1.8.5 को भूलना चाहिए और नए सीखने/शर्मनाक पर ध्यान देना चाहिए ईसीएमएस्क्रिप्ट 5 विशेषताएं।

जानकारी के लिए: कैसे वे ECMAScript 5 यहाँ के अनुपालन में जावास्क्रिप्ट लाने के लिए योजना बना रहे हैं के बारे में बात करती है मोज़िला: https://developer.mozilla.org/En/JavaScript/ECMAScript_5_support_in_Mozilla

+3

वह मोज़िला ला रहा है। – Raynos

+1

मेरा बड़ा सवाल यह है कि जावास्क्रिप्ट अंततः यूनिकोड को अपने रेगेक्स में संभालने में सक्षम होने जा रहा है, कम से कम [स्तर 1 यूटीएस # 18 के साथ अनुपालन: "बेसिक यूनिकोड सपोर्ट"] (http://unicode.org/reports/ tr18/# Basic_Unicode_Support)। इसके बिना आज के पोस्ट-एएससीआईआई दुनिया में बेकार है। – tchrist

+0

मुझे न तो, मुझे लगता है कि कुछ विशेषताएं शांत हैं, लेकिन यह अधिक है, पाइथनोनिज़ेशन इसे रखने का एक अच्छा तरीका है। एकमात्र चीज जो मैं चाहता हूं वह है अगर मैंने (जैसे एक्शनस्क्रिप्ट) –

उत्तर

12

जावास्क्रिप्ट 1.8.5 मोज़िला के अतिरिक्त सुविधाओं के साथ ईसीएमएस्क्रिप्ट का कार्यान्वयन है। यह ईसीएमएस्क्रिप्ट विनिर्देश का एक सुपरसेट है (और आईई, क्रोम और ओपेरा जैसे मौजूदा कार्यान्वयन)। मोज़िला अपने ब्राउज़र में जो फीचर्स जोड़ता है, उसके लिए धक्का देता है, वे इसे ईसीएमए में बना सकते हैं या नहीं भी कर सकते हैं। ध्यान दें कि मोज़िला डब्ल्यू 3 सी का सदस्य है और कुछ कहते हैं, लेकिन मेरा अनुमान है कि ज्यादातर सुविधाएं इसे नहीं बनाती हैं।

बॉटम लाइन इसका इस्तेमाल जब तक आप कुछ फ़ायरफ़ॉक्स के लिए विशिष्ट कोडिंग कर रहे हैं मत करो, एफएफ एक्सटेंशन, XUL क्षुधा, राइनो (जोड़ा राइनो @Raynos करने के लिए धन्यवाद) मैं एक pythonisation नहीं करना चाहती के लिए

+1

या राइनो! या मोज़िला जावास्क्रिप्ट व्याख्याता पर चलने वाली कोई और चीज। – Raynos

+0

यह अच्छा है। मैंने वास्तव में सोचा था कि राइनो जावास्क्रिप्ट के एक पुराने संस्करण के साथ फंस गया था, लेकिन हाँ, आप संस्करण का उपयोग करने के लिए भी चुन सकते हैं, यह वर्तमान में https://7veloper.mozilla.org/en/Rhino_Shell –

+0

का समर्थन करता है सीधे के लिए धन्यवाद जवाब। –

0

मुझे लगता है कि ECMAScript "मानक", एक खाका की तरह है, और जावास्क्रिप्ट वास्तविक भाषा यह है के आधार पर। W3c के मानकों के प्रकार की तरह और फिर लोग इसे बंद करने वाले इंजन को (या नहीं) बनाते हैं।

तो मूल रूप से आपके प्रश्न का उत्तर देने के लिए, आम सहमति क्या है, यह देखने के लिए ईसीएमएस्क्रिप्ट को देखें, जावास्क्रिप्ट कैसे काम करने के लिए "माना जाता है", लेकिन आपको जावास्क्रिप्ट पर ध्यान देना चाहिए, क्योंकि यही वह है जो आप वास्तव में कोडिंग करेंगे।

3

ईमानदारी से ईएस 5 पर ध्यान केंद्रित करें। 1.7 & 1.8 सुविधाओं के साथ समस्या यह है कि वे भाषा के वाक्यविन्यास को बदलते हैं ताकि आप उन्हें अन्य कोड में नहीं डाल सकें।

आप ईएस 5 के साथ ऑब्जेक्ट के सभी गुणों का अनुकरण कर सकते हैं लेकिन आप let कीवर्ड का अनुकरण नहीं कर सकते हैं। अन्य ब्राउज़रों में विभिन्न अभिव्यक्ति सिर्फ वैध जावास्क्रिप्ट नहीं हैं।

आपको मूल कोड को जोड़ने के बीच विचलित होना चाहिए जो ES5 का अधिकांश कर रहा है और जावास्क्रिप्ट के सिंटैक्स को बदल रहा है जो 1.7 & 1.8 कर रहा है।

1.7 & 1.8 के लिए उपयोग है जो RHINO मंच के लिए विकसित करना है। लेकिन ब्राउज़र जावास्क्रिप्ट के लिए कल्पना के लिए छड़ी।

मान्य रूप से एकाधिक मूल्य रिटर्न एक सुंदर साफ सुविधा है। बीत रहा है कि जैसे एक सरणी काम अच्छा होगा

function() f { 
    return [1,2,3]; 
} 

[a,b,c] = f() 

लेकिन अन्य सुविधाओं के वाक्य रचना के लिए काफी बड़े बदलाव कर रहे हैं और आप सिर्फ उन्हें ECMAScript वे सिर्फ इसके साथ सौदा नहीं होगा के माध्यम से धक्का नहीं कर सकते हैं। आपके ऊपर छोटे बदलाव ईएस 6 में शामिल हो सकते हैं लेकिन आपको कम से कम एक वर्ष का इंतजार करना होगा।

तो यथार्थ रूप से सीखने की उम्मीद नहीं है कि सीखने के लिए एक या दो साल के लिए भुगतान करना होगा। सबसे अधिक संभावना है कि यह भुगतान नहीं करेगा। underscore.js जैसे पुस्तकालयों को देखें जो आपके लिए सामान्य कार्यात्मक उपयोगिता विधियों को परिभाषित कर सकते हैं।

+0

क्या इसके regexes में अभी तक यूटीएस # 18 प्रति मूल यूनिकोड समर्थन है ?? – tchrist

+0

एक पार्सर/जेनरेटर शुरू करके भाषा के सिंटैक्स को बदलना संभव है जो कोड को सामान्य जावास्क्रिप्ट पर संकलित करता है। कॉफीस्क्रिप्ट देखें - http://jashkenas.github.com/coffee-script/। जेएस 1.8.5 समर्थन को झुकाव करने के लिए यह एक वैध (हालांकि बहुत समय लेने वाली) विधि होगी। –

+0

@ क्रिसमस मेरे पास कोई सुराग नहीं है। – Raynos

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

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