0:00
Guys आज हम लोग बात करने वाले हैं IIFE के बारे में जिसकी full form
0:03
है immediately invoked function expressions। ये useful होते हैं क्योंकि इससे हम
0:07
लोग async awit का syntax चला सकते हैं बिना किसी additional function
0:11
के बनाए। अगर हम लोग directly करेंगे async awit तो problem होगी
0:15
क्योंकि आप लोगों को async awid use करने के लिए होना है एक function के अंदर
0:19
In fact एक async function के अंदर और IIFE अगर हम लोग
0:22
use करते हैं तो हमारी help हो जाती है। चलते हैं computer screen में IIFE
0:26
के और भी देखेंगे, let's get started। So guys
0:35
chapter twelve है advance Java script के ऊपर इसमें हम लोग java script के जो
0:39
advanced concept है उनको देखेंगे और जितने भी important concepts है उनके
0:43
notes मैं आप लोगों को दूंगा तो हम लोग start करते हैं IIFE
0:47
से तो मैंने एक raple already बना रखी है IIFE के ऊपर और
0:52
इसमें जो है हम लोग immediately invoked function expressions के बारे में बात करेंगे। तो
0:56
IIF भी बहुत ही simple सी होती है जैसे कि मैंने आप लोगों को already
1:00
बताया भी था पहले हमने इसको चला कर देखा था but exactly सा हम
1:03
लोग समझेंगे इसके बारे में there are some java script concepts which make the life
1:07
of a developer extremely simple। we will discuss some of these in this chapter
1:11
और जितने भी important concepts होंगे उनके notes भी मैंने आप लोगों को दे रखे हैं। उसके बाद
1:14
हम लोग java script on the server तब वहां से जो है
1:18
हम लोग practical करना शुरू करेंगे projects बनाएंगे तो उसके मैं notes आप लोगों
1:22
को obviously नहीं दूंगा क्योंकि हर बात के notes अब एक project अगर मैं बनवा रहा हूं तो उसके notes
1:25
मैं देना सही नहीं समझता हूं। क्योंकि वो एक project है वो एक practical है
1:29
हमने जो concept सीखे हैं उसको use करके हम बना रहे हैं तो उसको मैं notes में include नहीं करना चाहता
1:33
तो chapter twelve जो है वो final chapter होने वाला है इस course का। अगर
1:37
मुझे लगेगा कोई supplement material देना है तो obviously मैं दे सकता हूं but
1:40
for now chapter twelve final है ये last chapter है, ठीक है। ऐसा
1:44
नहीं है कि उसके बाद हम लोग कुछ करेंगे नहीं उसके बाद हम लोग बहुत सारी चीजें करने वाले हैं java script on the
1:48
server करेंगे event loop के बारे में देखेंगे कई चीजें हैं जो कि हम देखेंगे
1:52
but अभी IIFE के बारे में देखते हैं तो मैं इस rapple
1:56
को एक नई tab में खोलता हूं और यहां पर मैं आप लोगों को इसका console खोल
1:59
कर दिखाता हूं। मैं simply java script में यहां पर लिखूंगा let A
2:03
is equal to new promise और, resolve reject और ये करने के
2:10
बाद मैं यहां पर एक function बनाना चाहता हूं और set time
2:16
out करूंगा मैं और set time out करूंगा यहां पर भी एक
2:20
function बनाऊंगा एक arrow function और resolve कर दूंगा फिर the value
2:24
of four fifty six which is very random value और चार second
2:28
के बाद resolve कर दूंगा। ठीक है और अब मैं यहां पर क्या करूंगा मैं
2:32
इसको मान लो तीन बार run करना चाहता हूं एक एक करके ठीक है
2:35
मैं एक बार इसको run करना चाहता हूं, मैं कहना चाहता हूं let b
2:39
is equal to और मैं कुछ ऐसा करना चाहता हूं pseudo code
2:44
में लिख रहा हूं, resolve the value of a उसके लिए हम लोग
2:48
await use करते हैं तो मान लो मैंने इसको await करने की कोशिश करी, मान लो मैंने कहा
2:51
यार await a और मैंने कहा let C is equal to दोबारा से await
2:55
A ठीक है और मैंने कहा let d is equal to दोबारा
2:59
से await A ठीक है तो और फिर उसके बाद मैं कहता हूं console
3:03
dot log AB sorry B C और D ठीक है लेकिन क्या
3:07
होगा ये करेंगे तो हमें मिलेगा एक error ठीक है आपको दिखाता हूं मैं
3:11
तो यहां पर ये कह रहा है it is only valid inacing functions and the
3:15
top level bodies of modules यानी कि आप modules की top level body में use
3:19
कर सकते हो और acing functions में use कर सकते हो और ये दोनों में से कोई भी नहीं है। तो
3:23
हम क्या करेंगे हम कहेंगे यार चलो ठीक है अगर ऐसी बात है तो हम इसको
3:26
एक function के अंदर डाल देते हैं। और उस function को हम
3:30
कुछ ऐसे बना देते हैं let f is equal to asing function
3:34
बना देते हैं, ठीक है, तो कैसा रहेगा? तो java script कहता
3:37
है कि हां ठीक है, बुरा तो नहीं रहेगा और फिर उसके बाद मैं इस
3:41
function को call कर दूंगा ठीक है। तो मैं जब इस function
3:45
को call करूंगा तो obvious सी बात है कि यहां पर जो values है उनमें resolve
3:48
हो जाएगा ये और सही तब होगा जब मैं इसको ना कुछ
3:52
ऐसा करूं। यानी कि मैं, जैसे B है और फिर
4:02
C है। और फिर DM मतलब एक एक करके मुझे मिलने चाहिए
4:07
values। और इसको मैं reload कर रहा हूं। आप देखना four fifty
4:13
six आएगा फिर four fifty six चमकेगा फिर four fifty चमकेगा actually ये save
4:17
नहीं हुआ problem ये थी। अभी एक-एक करके ये आने चाहिए। आह
4:22
तीनों एक साथ आ रहे हैं okay तो तीनों एक साथ इसलिए आ रहे हैं क्योंकि आह
4:27
नहीं यार तीनों एक साथ आ रहे हैं, मैंने आपको call किया अगर
4:31
ये cing function है तो B जो है वो print होगा पहले
4:36
फिर C print होगा फिर D print होगा but A एक promise
4:40
है तो A जो है चार ही second लेगी resolve होने में problem ये है
4:44
तो यार मैं पता है क्या करूंगा मैं एक ना function बना दूंगा इसको कुछ
4:47
इस तरह से। मैं कहूंगा let A is equal to एक ना function
4:51
बना दो कहूंगा और ये return करेगा एक नया promise तो हर
4:55
बार ना एक नई promise return होगी ठीक है अब आप लोग confuse मत हो जाना इस
4:58
को देख कर और मैं ये को ना as a function call करूंगा तो ये अपने आप में अलग
5:02
promise होगी ये एक अपने आप में अलग promise होगी ये एक अपने आप में अलग promise होगी और तीनों
5:05
individual अलग अलग promises होंगी तो ये four fifty six, four fifty
5:09
six, four fifty six चमकेगा एक एक करके ठीक है। तो यहां पर मैं आपको
5:13
दिखाता हूं four fifty six आया। और फिर दो बार और आएगा four
5:16
fifty six एक बार और आया और एक बार और आएगा ठीक है चार second के बाद तो
5:20
मुझे क्या करना एक अलग से function को call करना ठीक है आपने जैसे कि देखा
5:25
लेकिन java script कहता है कि यार चलो तुम्हें कष्ट होगा अगर तुम बार बार इस तरह
5:28
से function बनाकर उन्हीं को call करोगे तो क्यों ना मैं तुम्हें एक
5:32
ninja technique दे दूं और वो ninja technique क्या होगी तुम क्या करो
5:36
कि इसको एक bracket में इस तरह से wrap कर दो और इसको
5:39
call कर दो। तो ये इस bracket के अंदर जो भी होगी वो call
5:43
हो जाएगी और इसी को कहते हैं IIFE immediately invte function। Expressions
5:48
मैंने control s किया, मैं इसको reload करूंगा, तो देखो same हो
5:51
गई चार second के बाद four fifty six यहां पर आएगा, फिर उसके बाद चार second के
5:55
बाद एक और four fifty six आएगा and so ठीक है तो ये होगी यहां पर जैसे
5:59
कि आप देख रहे हो अपनी computer screen पर यही होता है IIFE
6:02
यही होता है immediately in function expression ठीक है, it is used to avoid
6:06
polluting the global name space कभी कभी क्या होता है कि आप लोग global name
6:09
space को pollute करते हो यानी कि बहुत सारे variables मान लो इस function के अंदर होते हैं। जैसे
6:13
कि मैंने यहां B बनाया, C बनाया, D बनाया, मैं चाहता हूं कि ये पूरी entity
6:17
एक बार में execute हो जाए और जितनी भी memory ये variables ले रहे हैं वो खत्म हो जाए ठीक
6:21
है। तो जैसे ही ये सारी की सारी execute होगी जो memory
6:25
reserve कर रखी है B, C और D के लिए हम java script engine ने वो
6:29
जो है release कर दी जाएगी और आप लोग यहां पर देख सकते
6:32
हो कि ये function अपने आप में एक entity बन चुका है ये execute हो जाएगा तो
6:36
इतने portion से मतलब तो global name space pollute नहीं होगी। अब
6:40
आप देखो अगर मैं यहां पर console dot log में D करता हूं तो
6:44
नहीं पता इसको d क्या है क्योंकि D का scope यहां तक था ठीक है और यहां
6:48
पर D का scope खत्म हो गया तो ये एक बहुत use case है। D
6:51
is not defined आ गया ठीक है। अगर मैंने इसको एक acing
6:55
function नहीं बनाया होता ऐसे ही चला देता तो D मेरा obviously
6:59
global namespace पर होता तो मैं उसको print कर पाता ठीक है। so
7:03
I hope आप समझ गए इस को एक acing का weight को चलाने के लिए इसका इस्तेमाल
7:06
किया। जैसे कि मैंने आप लोगों को दिखाया, ठीक है तो ये हमारे IIFE
7:10
के use case होते हैं और इसे कहते हैं immediately invoked function
7:14
expression। I hope कि आप लोगों को आए java script की playlist access कर लेना
7:17
अगर आप लोगों ने अभी तक access नहीं करी है तो youtube ने एक update दिया है
7:21
शायद yellow colour का यहां पर ये दिख रहा है मुझे shade काफी
7:25
premium दिख रहा है। I think इसने thumbnail में deduct कर लिया है yellow colour
7:28
मैं अपने java quotes में देखता हूं क्या java quotes में purple
7:32
colour का आ रहा है। ah I am just curious यार मैं देखना
7:36
चाहता हूं मेरे जावा course में चलो next years course में देखते हैं orange colour आ रहा है कि
7:40
नहीं। awesome यार awesome आ रहा है, strappy course में purple आ
7:43
रहा है कि नहीं? हाँ आ रहा है, awesome यार so अभी के लिए इस video में
7:47
इतना है guys playlist को जरूर access कर लेना thank you so much guys for watching this
7:51
video and I will see you next time।