दिलचस्प पोस्ट
मैं दशमलव के रूप में एक इंट क्यों नहीं खुल सकता? पायथन डीबगर के साथ आरंभ करना, पीडीबी ऐप आइकन के हाइलाइटिंग को अक्षम कैसे करें? Directory.GetFiles (…) का उपयोग करते समय पथ तक पहुंच अस्वीकृत है Laravel खाली सफेद स्क्रीन WPF छवि संसाधन क्लास का नाम और कॉलिंग कन्स्ट्रक्टर का उपयोग करके एक उदाहरण बनाना PostgreSQL में ऑटो इंक्रीमेंट प्राथमिक कुंजी को कैसे सेट करें? मैं कैसे निष्क्रिय कर सकता हूँ और पायथन में कंसोल लॉगिंग को पुन: सक्षम कर सकता हूं? स्ट्रिंग के लिए अवधि मैं स्ट्रिंग को इंट में कैसे बदल सकता हूँ? Nested टुकड़ा (एंड्रॉइड 4.2) का उपयोग करते हुए एक दृश्यपेज के अंदर एक टुकड़ा कैसे जोड़ें निर्दिष्ट प्रकार सदस्य 'तिथि' LINQ में इकाईयों अपवाद के लिए समर्थित नहीं है X86 विधानसभा में रजिस्टरों में इस्तेमाल किए जाने वाले पुश / पॉप निर्देशों का क्या कार्य है? एंड्रॉइड एसएमएस रिसीवर काम नहीं कर रहा है

जावास्क्रिप्ट में "=>" का अर्थ क्या है (एक बराबर से बड़ा तीर और बड़ा है)?

मुझे पता है कि >= ऑपरेटर से अधिक या बराबर मतलब है, लेकिन मैंने देखा है => कुछ स्रोत कोड में। उस ऑपरेटर का क्या अर्थ है?

यहां कोड है:

 promiseTargetFile(fpParams, aSkipPrompt, relatedURI).then(aDialogAccepted => { if (!aDialogAccepted) return; saveAsType = fpParams.saveAsType; file = fpParams.file; continueSave(); }).then(null, Components.utils.reportError); } 

वेब के समाधान से एकत्रित समाधान "जावास्क्रिप्ट में "=>" का अर्थ क्या है (एक बराबर से बड़ा तीर और बड़ा है)?"

यह क्या है

यह एक तीर फ़ंक्शन है एरो फ़ंक्शंस एक छोटा सिंटैक्स है, जो ECMAscript 6 द्वारा पेश किया गया है, जिसका उपयोग उसी तरह किया जा सकता है कि आप फ़ंक्शन अभिव्यक्ति का उपयोग करेंगे। दूसरे शब्दों में, आप अक्सर उन्हें function (foo) {...} जैसे अभिव्यक्तियों के स्थान पर उपयोग कर सकते हैं। लेकिन उनके पास कुछ महत्वपूर्ण मतभेद हैं उदाहरण के लिए, वे this अपने स्वयं के मूल्यों को बाध्य नहीं करते (चर्चा के लिए नीचे देखें)

एरो फ़ंक्शंस ईसीएमएस्क्रिप्ट 6 विनिर्देश का हिस्सा हैं, लेकिन आज के अधिकांश ब्राउज़रों में उपयोग में "सामान्य" जावास्क्रिप्ट का हिस्सा नहीं है। हालांकि, वे नोड v। 4.0+ और कई ब्राउज़रों (नीचे देखें) में आंशिक रूप से समर्थित हैं।

आप एरो फ़ंक्शंस पर मोज़िला दस्तावेज में अधिक पढ़ सकते हैं ।

मोज़िला दस्तावेज़ से:

फ़ंक्शन अभिव्यक्ति की तुलना में एक तीर फ़ंक्शन अभिव्यक्ति (जिसे वसा तीर फ़ंक्शन के रूप में भी जाना जाता है) की एक छोटी सिंटैक्स होती है और this मान को बाध्य करती है (यह अपनी स्वयं, new.target , super , या new.target । ऐरो फ़ंक्शंस हमेशा अनाम हैं ये फ़ंक्शन अभिव्यक्ति गैर-विधि कार्यों के लिए सर्वोत्तम अनुकूल हैं और उन्हें कन्स्ट्रक्टर के रूप में उपयोग नहीं किया जा सकता है।

एरो फ़ंक्शंस में this कैसे काम करता है पर एक नोट

एक तीर फ़ंक्शन की सबसे आसान सुविधाओं में से एक उपरोक्त पाठ में दफन है:

एक तीर फ़ंक्शन … this मान को बाध्य करता है (यह अपना स्वयं का बाँध नहीं करता है …)

इसका सरल अर्थ यह है कि तीर फ़ंक्शंस this वैल्यू को उसके संदर्भ से बरकरार रखती है और इसका अपना कोई अधिकार नहीं है एक पारंपरिक समारोह स्वयं this मूल्य को बाध्य करती है , जिसमें बहुत सारे जिम्नास्टिक्स की आवश्यकता होती है जैसे कि self = this; , आदि, किसी अन्य फ़ंक्शन के अंदर एक फ़ंक्शन से this उपयोग या हेरफेर करने के लिए। इस विषय पर अधिक जानकारी के लिए, मोज़िला दस्तावेज़ों में स्पष्टीकरण और उदाहरण देखें।

उदाहरण कोड

उदाहरण (डॉक्स से भी):

 var a = [ "We're up all night 'til the sun", "We're up all night to get some", "We're up all night for good fun", "We're up all night to get lucky" ]; // These two assignments are equivalent: // Old-school: var a2 = a.map(function(s){ return s.length }); // ECMAscript 6 using arrow functions var a3 = a.map( s => s.length ); // both a2 and a3 will be equal to [31, 30, 31, 31] 

संगतता पर नोट्स

आप नोड में तीर फ़ंक्शंस का उपयोग कर सकते हैं, लेकिन ब्राउज़र समर्थन स्पॉटी है।

इस कार्यक्षमता के लिए ब्राउज़र समर्थन में काफी सुधार हुआ है, लेकिन यह अभी भी अधिकांश ब्राउज़र-आधारित उपयोगों के लिए पर्याप्त नहीं है 25 जनवरी, 2017 तक, यह वर्तमान संस्करणों में समर्थित है:

  • क्रोम (v। 45+)
  • फ़ायरफ़ॉक्स (वी। 22+)
  • एज (v। 12+)
  • ओपेरा (v। 32+)
  • एंड्रॉइड ब्राउज़र (वी। 47+)
  • ओपेरा मोबाइल (वी। 33+)
  • एंड्रॉइड के लिए क्रोम (वी। 47+)
  • एंड्रॉइड के लिए फ़ायरफ़ॉक्स (वी। 44+)
  • सफारी (v। 10+)
  • आईओएस सफारी (v। 10.2+)

समर्थित नहीं:

  • आईई (वी। 11 के माध्यम से)
  • ओपेरा मिनी (वी। 8.0 के माध्यम से)
  • ब्लैकबेरी ब्राउज़र (v। 10 के माध्यम से)
  • आईई मोबाइल (वी। 11 के माध्यम से)
  • एंड्रॉइड के लिए यूसी ब्राउज़र (v.9.9 के माध्यम से)
  • सैमसंग इंटरनेट (वी 4 के माध्यम से)

आप CanIUse.com (कोई संबद्धता) में अधिक (और अधिक वर्तमान) जानकारी प्राप्त कर सकते हैं।

यह एरो फंक्शन के रूप में जाना जाता है, ECMAScript 2015 का हिस्सा …

 var foo = ['a', 'ab', 'abc']; var bar = foo.map(f => f.length); console.log(bar); // 1,2,3 

पिछले की तुलना में कम वाक्य रचना:

 // < ES6: var foo = ['a', 'ab', 'abc']; var bar = foo.map(function (f) { return f.length; }); console.log(bar); // 1,2,3 

डेमो

दूसरी भयानक चीज यह शाब्दिक है … आमतौर पर, आप ऐसा कुछ करते हैं:

 function Foo() { this.name = name; this.count = 0; this.startCounting(); } Foo.prototype.startCounting = function() { var self = this; setInterval(function () { // this is the Window, not Foo {}, as you might expect console.log(this); // [object Window] // that's why we reassign this to self before setInterval() console.log(self.count); self.count++; },1000) } new Foo(); 

लेकिन यह इस तरह से तीर के साथ फिर से लिखा जा सकता है:

 function Foo() { this.name = name; this.count = 0; this.startCounting(); } Foo.prototype.startCounting = function() { setInterval(() => { console.log(this); // [object Object] console.log(this.count); // 1, 2, 3 this.count++; },1000) } new Foo(); 

डेमो

MDN
सिंटेक्स पर और अधिक

अधिक के लिए, यहां तीर फ़ंक्शंस का उपयोग करने के लिए एक बहुत अच्छा जवाब है।

यह ईसीएमएस्क्रिप्ट 6 में पेश की गई "एरो फ़ंक्शन अभिव्यक्ति" होगी

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

ऐतिहासिक उद्देश्यों के लिए (यदि विकी पृष्ठ बाद में बदलता है), तो यह है:

फ़ंक्शन अभिव्यक्ति की तुलना में एक तीर फ़ंक्शन अभिव्यक्ति का एक छोटा सिंटैक्स होता है और इस मान को बोलने से बाइन करता है। ऐरो फ़ंक्शंस हमेशा अनाम हैं

मानचित्र का उपयोग किए बिना लैम्ब्डा क्या कर सकता है इसका दूसरा उदाहरण:

 a = 10 b = 2 var mixed = (a,b) => a * b; // OR var mixed = (a,b) => { (any logic); return a * b }; console.log(mixed(a,b)) // 20 

जैसा कि दूसरों ने कहा है, यह फ़ंक्शन बनाने के लिए एक नया सिंटैक्स है।

हालांकि, इस प्रकार का कार्य सामान्य लोगों से भिन्न होता है:

  • वे this मान को बाँधते हैं के रूप में कल्पना से समझाया,

    एक ArrowFunction arguments , super , this , या new.target लिए स्थानीय बाइंडिंग को परिभाषित नहीं करता है। new.target भीतर arguments , super , this , या new.target के किसी भी संदर्भ को एक आज़ादी से संलग्न वातावरण में बाध्य करने के लिए हल करना होगा। आमतौर पर यह एक तत्काल संलग्न समारोह के समारोह पर्यावरण होगा।

    हालांकि एक एरो फंक्शन में super संदर्भ शामिल हो सकते हैं, चरण 4 में बनाई जाने वाली फ़ंक्शन ऑब्जेक्ट मेकमेथ को निष्पादित करके एक विधि में नहीं बनाया गया है। एरो फंक्शन, जो संदर्भ super नॉनएरो फंक्शन में होता है और super को क्रियान्वित करने के लिए आवश्यक राज्य गुंजाइश के माध्यम से पहुंचा जा सकता है जो एरो फंक्शन के फ़ंक्शन ऑब्जेक्ट द्वारा कब्जा कर लिया जाता है।

  • वे गैर-कन्स्ट्रक्टर हैं

    इसका मतलब है कि उनके पास कोई [[निर्माण]] आंतरिक पद्धति नहीं है, और इस तरह इन्स्तांत नहीं किया जा सकता, उदा

     var f = a => a; f(123); // 123 new f(); // TypeError: f is not a constructor 

मैंने पढ़ा है, यह ES6 में Arrow Functions का प्रतीक है

इस

 var a2 = a.map(function(s){ return s.length }); 

Arrow Function का उपयोग करके इसे लिखा जा सकता है

 var a3 = a.map( s => s.length ); 

एमडीएन डॉक्स

ये एरो फ़ंक्शन हैं I

फैट ऐरो फ़ंक्शन के रूप में भी जाना जाता है वे फ़ंक्शन अभिव्यक्ति लिखने के लिए एक स्वच्छ और consise तरीका हैं, जैसे function() {}

फ़ंक्शन को परिभाषित करते समय तीर फ़ंक्शन function , return और {} की आवश्यकता को निकाल सकते हैं वे एक-लाइनर्स हैं, जो जावा या पायथन में लैम्ब्डा एक्सप्रेशंस के समान है।

उदाहरण के साथ कोई पैरामीटर नहीं

 var queue = ['Dave', 'Sarah', 'Sharon'], nextCustomer = () => queue[0]; console.log(nextCustomer()); // 'Dave' 

जैसा कि अन्य सभी उत्तर पहले ही कह चुके हैं, यह ES2015 तीर फ़ंक्शन सिंटैक्स का हिस्सा है। अधिक विशेष रूप से, यह एक ऑपरेटर नहीं है, यह एक ArrowFunction : ArrowParameters => ConciseBody टोकन है जो शरीर से मापदंडों को अलग करता है: ArrowFunction : ArrowParameters => ConciseBody उदाहरण (params) => { /* body */ }

Arrowfunction के साथ सरल CRUD उदाहरण जोड़ना

  //Arrow Function var customers = [ { name: 'Dave', contact:'9192631770' }, { name: 'Sarah', contact:'9192631770' }, { name: 'Akhil', contact:'9928462656' }], // No Param READ getFirstCustomer = () => { console.log(this); return customers[0]; }; console.log("First Customer "+JSON.stringify(getFirstCustomer())); // 'Dave' //1 Param SEARCH getNthCustomer = index=>{ if( index>customers.length) { return "No such thing"; } else{ return customers[index]; } }; console.log("Nth Customer is " +JSON.stringify(getNthCustomer(1))); //2params ADD addCustomer = (name, contact)=> customers.push({ 'name': name, 'contact':contact }); addCustomer('Hitesh','8888813275'); console.log("Added Customer "+JSON.stringify(customers)); //2 param UPDATE updateCustomerName = (index, newName)=>{customers[index].name= newName}; updateCustomerName(customers.length-1,"HiteshSahu"); console.log("Updated Customer "+JSON.stringify(customers)); //1 param DELETE removeCustomer = (customerToRemove) => customers.pop(customerToRemove); removeCustomer(getFirstCustomer()); console.log("Removed Customer "+JSON.stringify(customers));