2012-07-01 17 views
35

क्या node.js described on MDN? की तरह कुछ बयान कथन का समर्थन करता है?क्या node.js 'let' कथन का समर्थन करता है?

var x = 8, 
    y = 12; 

let (x = 5, y = 10) { 
    return x + y; 
} //15 

यदि नहीं, तो क्या एक आत्म-निष्पादन अज्ञात फ़ंक्शन या कुछ के साथ कार्यक्षमता को डुप्लिकेट करने का कोई तरीका है?

और/या वहाँ एक और जे एस वातावरण है कि

  1. let और और
  2. है है एक आरईपीएल, नोड के रूप में करता है? राइनो?

संपादित:

यह सवाल काफी देर पहले कहा गया था। अभी तक, 2015 के अंत में, जवाब "हां, हां यह करता है"। Hioony सुविधाओं को डिफ़ॉल्ट रूप से io.js 3.3 में शामिल किया गया था, और हाल ही में 4.x रिलीज के साथ node.js पर वापस लाया गया है।

+0

Node.js सभी वाक्यविन्यास का समर्थन करता है जो V8 जावास्क्रिप्ट इंजन (Google द्वारा) द्वारा समर्थित है। –

+2

http://kangax.github.com/es5-compat-table/es6/ –

+0

@ जोनाथनलोनोस्की धन्यवाद, यह एक बहुत ही उपयोगी तालिका है। –

उत्तर

6

मैं नोड let का समर्थन करता है नहीं लगता है, लेकिन आप क्या कर सकते हैं इस:

var a = 5; 

(function() { 
    var a = 6; 
    console.log(a); // => 6 
})(); 

console.log(a); // => 5 
+6

यह मैंने जो पाया है उसके बारे में है। यह सिर्फ खराब पढ़ता है। मुझे 'चलो' चाहिए! * गुस्सा tantrum * –

+0

मुझे आश्चर्य है कि आपके स्निपेट कुछ साबित करता है। अनाम कार्य बनाकर, आपने वैसे भी एक नया दायरा बनाया है। – rda3mon

+4

@ rda3mon - वह बिंदु नहीं था? – Subfuzion

84

हाँ, आप Node.js भीतर जाने का उपयोग कर सकते हैं, हालांकि आप वैकल्पिक --harmony ध्वज का उपयोग कर नोड को चलाने के लिए है । निम्नलिखित test.js का प्रयास करें:

"use strict" 
var x = 8, 
    y = 12; 

{ let x = 5, y = 10; console.log(x + y); } 

console.log(x + y); 

और फिर फ़ाइल node --harmony test.js जिसमें परिणाम चलाएँ:

15 
20 

मैं एक महत्वपूर्ण उत्पादन आवेदन में यह उपयोग करने की अनुशंसा नहीं होगा, लेकिन सुविधा के उपलब्ध होने अभी व।

+0

ठंडा, मुझे नहीं पता था कि नोड के पास सद्भावना मोड था। –

+6

एचएम तो यह केवल सख्त मोड में काम करता है –

+7

@ टिमोथी-स्ट्रिमल क्या आप टिप्पणी कर सकते हैं कि यह अच्छा क्यों नहीं है उत्पादन अनुप्रयोगों के लिए विचार? –

19
node --use_strict --harmony_scoping 
+0

यह उत्तर नोड के वास्तविक संस्करणों के लिए लागू होता है क्योंकि सरल '- हार्मनी' विकल्प नोड v0.12.4 के साथ काम नहीं करता है – Fr0sT

1

आप कोलाहल transpiler का उपयोग करें और let के साथ ही कई अन्य ES6/ES2015 सुविधाओं का उपयोग कर सकते हैं। अपने package.json में

$ npm install --save-dev babel 

तब:

कोलाहल का उपयोग करने के

"scripts": { 
    "start": "babel-node index.js" 
} 

index.js के अंदर:

:

let foo = 'bar; 

फिर सर्वर प्रारंभ

23

यह एक पुराना प्रश्न है और स्वीकृत उत्तर अब सही नहीं है।

let समर्थन Node.js 4.x में जोड़ा गया था।

पूर्ण संस्करण समर्थन मैट्रिक्स के लिए here देखें।

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