2008-11-18 20 views
45

मोज़िला फ़ायरफ़ॉक्स के संबंध में जावास्क्रिप्ट का कौन सा संस्करण Google क्रोम समर्थन करता है? दूसरे शब्दों में, क्रोम जावास्क्रिप्ट 1.6, 1.7, या 1.8 का समर्थन करता है जो फ़ायरफ़ॉक्स भी समर्थन करता है या उनमें से कुछ संयोजन?Google क्रोम - जावास्क्रिप्ट संस्करण

+0

एक साइडबार के रूप में, स्क्रिप्ट टैग की भाषा विशेषता के बाद से एचटीएमएल 4 कल्पना पदावनत किया गया है, यह बजाय प्रकार विशेषता का उपयोग करने की सिफारिश की है। – seanb

+0

यह वास्तव में अजीब है, मेरे प्लगइन के जेएस क्रोम के साथ समस्याएं हैं, लेकिन अन्य ब्राउज़रों पर पूरी तरह से काम कर रहे हैं। 'क्लिक-बॉक्स' में काम नहीं कर रहा है। मैंने 'onchange()', 'onblur()', 'onfocus()' की कोशिश की लेकिन अभी भी क्रोम में काम नहीं कर रहा है। – Frank

उत्तर

41

क्रोम "javascript1.7" के रूप में चिह्नित जावास्क्रिप्ट निष्पादित करते हैं, यह "दो" scoped चर ऑपरेटर की तरह JS1.7 सुविधाओं का समर्थन नहीं करता है।

इस कोड का उपयोग कर वी 8 क्रोम पर Firefox 3.5 पर चलने लेकिन नहीं होगा: आप करने के लिए "javascript1.7" भाषा बदल सकते हैं और प्रकार को छोड़ देते हैं, तो

<script language="javascript" type="application/javascript;version=1.7"> 
    function foo(){ let a = 4; alert(a); }; foo(); 
</script> 

, यह 1.7 सुविधाओं जे एस के साथ नहीं चलेंगे फ़ायरफ़ॉक्स 3.5। प्रकार अनुभाग आवश्यक है।

यह एक सामान्य वेबकिट बग, https://bugs.webkit.org/show_bug.cgi?id=23097 से संबंधित प्रतीत हो रहा है; यह हो सकता है कि क्रोम सफारी व्यवहार को अनुकरण करे, भले ही यह एक अलग इंजन का उपयोग करता हो।

When asked about supporting JS 1.8 features, वी 8 टीम ने कहा कि वे तो पृष्ठों दोनों ब्राउज़र में एक ही कार्य करेगी सफारी में इस्तेमाल किया संस्करण ट्रैक करने के लिए कोशिश कर रहे थे।

+4

वह जो चलो परेशान है। मुझे इसके बजाय नेस्टेड क्लोजर का उपयोग करने के लिए मजबूर होना पड़ता है: https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Working_with_Closures#Creating_closures_in_loops.3a_A_common_mistake – Tobu

5

गूगल क्रोम जावास्क्रिप्ट 1.7 का ही समर्थन:

<script language="javascript1.7">alert(1.7);</script> - Alerts 
<script language="javascript1.8">alert(1.8);</script> - Doesn't alert 
+2

यह ऐसी चीज की तरह लगता है जो समय के साथ बदल जाएगा- क्या हमें यकीन है कि क्रोम बीटा छोड़ने के समय 1.8 का समर्थन नहीं करेगा? लेकिन खुद को जांचने के तरीके के लिए अपवित्र। –

+0

मुझे यकीन है कि यह इसका समर्थन करेगा * आखिरकार * लेकिन मेरे पास कोई आंतरिक ज्ञान नहीं है ... संभवतः कुछ Google कर्मचारी SO प्रशंसकों हैं और हमें प्रबुद्ध कर सकते हैं। – Greg

+5

@joel: यह बहुत मजेदार है। क्या आपने कभी एक Google उत्पाद छोड़ दिया बीटा देखा है? – NotMe

12

गूगल क्रोम V8 javascript engine का उपयोग करता है, जो वर्तमान में कहा गया है कि यह लागू करता है ECMA-262, 3 संस्करण। यह दर्शाता है कि यह कम से कम संस्करण 1.5 का समर्थन करता है।

+0

अजीब। मैंने सोचा था कि 'ऑर ऑब्जेक्ट्स में)' इटेटरेटर तीसरे संस्करण में कुछ नहीं था, फिर भी यह क्रोम और सफारी में ठीक काम करता है। – skerit

+3

@skerit "यह लागू करता है" कहकर, कम से कम ईसीएमए -262 वी 3 में सभी सुविधाएं उपलब्ध हैं। आपके द्वारा उल्लिखित एक सहित, अन्य सुविधाएं जोड़ने के लिए वे स्वतंत्र हैं। – syockit

10

यहाँ एक सरल जावास्क्रिप्ट 1.6 सुविधा है क्रोम (और वी 8 उपयोगकर्ताओं, Node.js की तरह) नहीं चलेंगे: for each … in

for each (variable in object) 
    statement 

यह जे एस 1.5 (प्रति जम्मू ग का जवाब) के रूप में केवल संस्करण क्रोम है पूरी तरह से लागू करने का दावा करता है।

वास्तव में क्रोम टीम ज्यादातर सफारी (समय में सबसे प्रमुख वेबकिट उपयोगकर्ता) के साथ संगतता के लिए उद्देश्य से, और उन आधारों पर सुविधाओं इनकार कर दिया है।

+0

बहुत अच्छा बिंदु। – CDR

+1

क्रोम 16.0 में समर्थित नहीं है। एक घंटा आश्चर्य हुआ कि कोड क्यों काम नहीं कर रहा था ... – SabreWolfy

+0

आप सही तरीके से उपयोग नहीं कर रहे हैं। यहां वाक्यविन्यास देखें: http://robertnyman.com/javascript/javascript-1.6.html – Case

4

यह एक पुरानी धागा, फिर भी यहाँ जाता है। गूगल क्रोम निम्नलिखित

function foo(){ 
    let a = 4; 
    alert(a); 
} 
foo(); 

का जवाब नहीं है, इसलिए यह जावास्क्रिप्ट 1.7

+0

क्रोम पर जावास्क्रिप्ट 1.7 में कुछ अन्य चीजें हैं जिनसे मुझे परेशानी थी, जैसे ग्लोबल वेरिएबल्स तक पहुंच और – user151496

17

का समर्थन नहीं करता यह धागा अब भी प्रासंगिक है। 2012 तक, क्रोम अधिकांश जावास्क्रिप्ट 1.6 का समर्थन करता है, जिसमें स्ट्रिंग और सरणी जेनेरिक शामिल नहीं हैं। यह 1.7 में से कोई भी समर्थन नहीं करता है। यह 1.8, सभी 1.8.1, और गेटर्स और सेटर्स और this page पर सूचीबद्ध सभी गैर-संस्करण विशिष्ट चीज़ों को कम करने और कम करने का समर्थन करता है। यह पृष्ठ मोज़िला डेवलपर नेटवर्क से जुड़ा हुआ है, जो जावास्क्रिप्ट के संस्करणों को निर्दिष्ट करता है, here मिला।

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