No video

Learn Closures In 13 Minutes

  Рет қаралды 58,417

Web Dev Simplified

Web Dev Simplified

Күн бұрын

JavaScript Simplified Course: javascriptsimplified.com/?utm...
FREE JS Array Methods Cheat Sheet: webdevsimplified.com/js-array...
FREE JS DOM Traversal Cheat Sheet: webdevsimplified.com/js-dom-t...
FREE JS DOM Manipulation Cheat Sheet: webdevsimplified.com/js-dom-m...
Closures are one of the core features of JavaScript that every developer needs to understand. You not only need to know what they are and how they work, but you also need to have a deep understanding of various niche behaviors of closures since many jobs will ask you complex interview questions on closures. In this video I will cover what closures are, how they work, and multiple example interview questions so you can be prepared for whatever gets thrown at you.
📚 Materials/References:
JavaScript Simplified Course: javascriptsimplified.com/?utm...
FREE JS Array Methods Cheat Sheet: webdevsimplified.com/js-array...
FREE JS DOM Traversal Cheat Sheet: webdevsimplified.com/js-dom-t...
FREE JS DOM Manipulation Cheat Sheet: webdevsimplified.com/js-dom-m...
Scoping Video: • If You Cannot Name All...
Scoping Article: blog.webdevsimplified.com/202...
Garbage Collection Video: • Only The Best Develope...
Strict Mode Video: • JavaScript Was So Bad ...
ES6 Modules Video: • JavaScript ES6 Modules
ES6 Modules Article: blog.webdevsimplified.com/202...
Arrow Functions Video: • JavaScript ES6 Arrow F...
Arrow Functions Article: blog.webdevsimplified.com/202...
Let vs Var vs Const Video: • Differences Between Va...
Let vs Var vs Const Article: blog.webdevsimplified.com/202...
🌎 Find Me Here:
My Blog: blog.webdevsimplified.com
My Courses: courses.webdevsimplified.com
Patreon: / webdevsimplified
Twitter: / devsimplified
Discord: / discord
GitHub: github.com/WebDevSimplified
CodePen: codepen.io/WebDevSimplified
⏱️ Timestamps:
00:00 - Introduction
00:50 - What Is A Closure
05:40 - Why Are Closures Important
08:36 - Closure Interview Questions
#Closures #WDS #JavaScript

Пікірлер: 86
@usmanquickcode
@usmanquickcode 25 күн бұрын
I just gave my interview and in this interview they asked me about closures. which ofcourse i have no idea. I have used it but no idea what is called. and i open my youtube and boom you are there. really like the simple explaination.
@anothermouth7077
@anothermouth7077 25 күн бұрын
Those know-it-all interviewers always play with these gotcha questions which are not even practical anymore
@looming_
@looming_ 25 күн бұрын
@@anothermouth7077closures are pretty important tho
@thecoolnewsguy
@thecoolnewsguy 25 күн бұрын
Such useless interview questions. They really need to ask about the job instead of stupid shit that you're not gonna use 95% of the time
@jessecalato4677
@jessecalato4677 24 күн бұрын
​@thecoolnewsguy you will use closures constantly though, and terminology is important for proper communication...
@thecoolnewsguy
@thecoolnewsguy 24 күн бұрын
@@jessecalato4677 I know. Yes closures are used extensively but asking about the var gotcha in a loop is just stupid like who's gonna use var in 2024 for a new code?
@PavloBozhok
@PavloBozhok 24 күн бұрын
Thanks a lot, I know and remember how closure works in javascript, but I never knew about something tricks.
@mewansynniang1902
@mewansynniang1902 12 күн бұрын
Beautifully explained
@matheusneves688
@matheusneves688 24 күн бұрын
Thank you! Amazing content!
@jovi9918
@jovi9918 25 күн бұрын
Great quick watch
@blueghost512
@blueghost512 25 күн бұрын
Best used in Factory design pattern.
@TalesGrechi
@TalesGrechi 25 күн бұрын
Great video!
@RaimundoAraujoCorrea
@RaimundoAraujoCorrea 22 күн бұрын
I use one type closure all the time, combined with promises, when I have to execute a function on an array of data asynchronously, all you have to do is return a promise with a function, inside create a couter at 0, create the function thats going to process an entry, before return, incremente the counter, and excecute the inner function again, when its done, resolve the promise.
@xzex2609
@xzex2609 25 күн бұрын
React vue and angular use closures all the time , all functional components are closures
@maciejzettt
@maciejzettt 23 күн бұрын
As well as state management is
@Regeneration1996
@Regeneration1996 19 күн бұрын
And react hooks to 😅
@xzex2609
@xzex2609 19 күн бұрын
@@Regeneration1996 of course in the end a hook will return some functions as objects and states too , when I was said react I mean most of it uses closures
@karimkrimou399
@karimkrimou399 25 күн бұрын
Excellent and really clear approch and explantion
@captkalik
@captkalik 17 күн бұрын
That for loop let var closure interview question is just brutal
@lesalmin
@lesalmin 25 күн бұрын
This is the best explanation of closures I've seen (including your own previous explanations).
@doniaelfouly4142
@doniaelfouly4142 22 күн бұрын
Thanks
@crakyanime8903
@crakyanime8903 24 күн бұрын
it would be good if you cover conditional scope or conditional closures
@24306529
@24306529 22 күн бұрын
dude be selling 10 other videos within 1 video
@plamenyordanov131
@plamenyordanov131 15 күн бұрын
Printing 3 times 3 has more to do with the event loop than closures
@QuanTran-wt4yt
@QuanTran-wt4yt 25 күн бұрын
Can you make a video talking about message queue?
@AlejandroPoleo18
@AlejandroPoleo18 Күн бұрын
❤ love it
@Mari_Selalu_Berbuat_Kebaikan
@Mari_Selalu_Berbuat_Kebaikan 24 күн бұрын
Let's always do alot of good ❤
@siasquad7360
@siasquad7360 25 күн бұрын
Sir please explain with the help of draw and after that code
@himalayagupta7744
@himalayagupta7744 20 күн бұрын
I had doubts for this last example, so I asked gpt to explain it to me deeply. It errored the first few times but at last gave the correct answer which claude also verified. Yes, for each iteration of the loop, a new scope is created, and within that scope, a new binding for the variable i is created. Here’s a detailed breakdown: First Iteration (i = 0): A new scope is created. A new binding for i is created and initialized to 0. The setTimeout callback captures this binding, so it logs 0. Second Iteration (i = 1): A new scope is created. A new binding for i is created and initialized to 1. The setTimeout callback captures this binding, so it logs 1. Third Iteration (i = 2): A new scope is created. A new binding for i is created and initialized to 2. The setTimeout callback captures this binding, so it logs 2. In each iteration, the let declaration ensures that i is re-declared and re-initialized within the new scope. This results in three separate bindings for i, each one unique to its iteration.
@Kingreey
@Kingreey 6 күн бұрын
Excelent
@manpreetjord1885
@manpreetjord1885 23 күн бұрын
Great video as usual. But Kyle, your 1x Playback speed feels like 1.25x bro. 🙂 Interviewers also ask that how you will print 0,1,2 when using var i=0; . We have to use the concept of closure here.
@dfields9511
@dfields9511 25 күн бұрын
Pascal lets you do this as a well, never used that feature of pascal. But was forced to Learn it
@tommysmith5479
@tommysmith5479 23 күн бұрын
So, if I can sum up and get confirmation: a closure is where an outer function or scope is not garbage collected because there is an inner function that relies on the outer function or scope's variables... is this correct?
@saurabhshrivastava5383
@saurabhshrivastava5383 10 күн бұрын
Hello Kayal, In your second example for closuers "function elementCreator(element)", if we directly return document.createElement(element) instead returning a function then what difference will it make, I think direct return will be better, what you suggest.
@mcRidersEvolution
@mcRidersEvolution 24 күн бұрын
What is the purpose of returning function which returns element and not returning element with the first function?
@consoledoterror971
@consoledoterror971 25 күн бұрын
I think the explanation for var, let with for loop is a bit wrong. 🤔
@amiryankolovich8560
@amiryankolovich8560 24 күн бұрын
I ran the code with the var and got 0,1,2 🤔
@amiryankolovich8560
@amiryankolovich8560 24 күн бұрын
Oh its because i had an error few lines before this I guess its js weird engine
@iftekharhaidar2397
@iftekharhaidar2397 25 күн бұрын
Dear, could you please explain what is JavaScript reference memory?
@Pareshbpatel
@Pareshbpatel 25 күн бұрын
JavaScript Closures, bautifully explained. Thanks, Kyle {2024-07-09}
@DanielBrownsan
@DanielBrownsan 12 күн бұрын
I genuinely thought I had the playback speed set to 150-200% for the first 3 minutes of the video.
@AlThePal78
@AlThePal78 25 күн бұрын
I honestly thought that it didn't call function too until it said return function to and since the variable was already age 30, that is why it started with 30. What if you called the function first?
@alexandraweather4156
@alexandraweather4156 23 күн бұрын
Thank you for this video and the job you do, but what is a JavaScript Developer? The only thing i could find is "JS developer" - in react, angular, vue and stuff Is there atually a job for JS developer in JS?
@ironCheval
@ironCheval 25 күн бұрын
Does it keep the dependant variable and delete the old ones? E.x. when you added age = 30, will age = 29 be kept still by javascript?
@MbzMOKKA
@MbzMOKKA 25 күн бұрын
No because it's the same memory spot. In his example, when he does age = 30, it overwrites the value 29 in variable 'age', instead of creating a new variable.
@green-coder-clj
@green-coder-clj 25 күн бұрын
I misread the title as "Learn Clojure in 13 minutes" 😅 Clojure & Clojurescript indeed help landing a job for the FE.
@viallymboma9874
@viallymboma9874 19 күн бұрын
In fact the concept of react custom hooks relies on the notion of closure When you're building a react custom hook, you're actually using closure.
@user-ik7rp8qz5g
@user-ik7rp8qz5g 23 күн бұрын
What you describe is just oop, but with extra steps
@ajiteshmishra0005
@ajiteshmishra0005 24 күн бұрын
Hii brother... You explained let and var concept in for loop. But still I'm confused. Can you explain in some other way.
@sealsharp
@sealsharp 25 күн бұрын
I was just wondering, is it possible to see the what structures&code JavaScript actually creates? Don't know how to call it. In C#, you can see the different stages ( C#, IL, ASM ) and that makes perfectly clear how closures technically work.
@letsbeafraid2233
@letsbeafraid2233 25 күн бұрын
JavaScript doesn't create code it gets JIT compiled into machine code directly by the engine. Read about V8 and how it works
@alienews0
@alienews0 15 күн бұрын
5:00 nope u didn't called your function on that line, u declared it ; u called it on the last line : return func2
@MichaelKire
@MichaelKire 25 күн бұрын
Fun fact. Classes in JS is actually just syntactic sugar for a closure with a special constructor/prototype function inside
@charleschukwuemeka8482
@charleschukwuemeka8482 25 күн бұрын
While watching the video, this came to my mind... It's nice seeing that someone else thought of the same thing
@trombecher
@trombecher 25 күн бұрын
A class is syntactic sugar for a function, not necessarily a closure. A function becomes a closure when capturing variables from the parent scope, not because it’s a class.
@supernovaw39
@supernovaw39 24 күн бұрын
Unrelated but why are you running VS Code as Admin? 🤔
@Efecretion
@Efecretion 25 күн бұрын
Closure to scoping is like 0/1 to binary -- closure is how scoping is implemented in JS, while 0/1 is how binary is represented typically.
@aqibmalik6313
@aqibmalik6313 25 күн бұрын
first comment after first comment of arunkaiser😂😂
@BMikel
@BMikel 25 күн бұрын
Please create Next js e-commerce project catalog with multiple checkboxes filtering, sorting, pagination, search. More e-commerce realistic. Thank you.
@bobwilkinsonguitar6142
@bobwilkinsonguitar6142 25 күн бұрын
I think you should do it!
@johnpatrickoldfield534
@johnpatrickoldfield534 24 күн бұрын
Do you know how to do that integer story with a public bank website inside a private login inside page two with a currency and interger value where I need to insert a legal agreement account balance update from 0 => R 1 000 000 Zar ? It’s a public https web address?! The javascript wipes the direct insert after page refresh how do I make the interger value const? Do you have team viewer and want to try and or show me?
@JacobZigenis
@JacobZigenis 24 күн бұрын
Hate to break it to you, but absolutely no one is going to help you with manipulating a bank website. Further, what you're seeing isn't just javascript wiping the value. It's retrieving the value from the bank's servers, which you cannot modify no matter how much you manipulate the page. Gotta study up a lot more and stop asking for advice on malicious activities on KZbin. Also, on the off chance you do manage to do something malicious, you will almost certainly get caught.
@johnpatrickoldfield534
@johnpatrickoldfield534 24 күн бұрын
@@JacobZigenis my laptops storage is full and not booting at the moment so I cannot screenshare. I don't see how it's my problem the external and Internal banking staff cannot manually show me howto insert credits into bank tables in cobol or whatever the language is from the email pseudocode to the browser web security layers in the osi model so that I may make debits to pay attorney legal fees for bank account topups. I think it's worth a trial investigation ie look, screenshare, record discuss, etc and a look into the file and code framework on the Javascript and in the console just for a deeper explination, because I just know sql server, table updates, hidden servers, html, Javascript and css. The actual coding language and topology to see exactly where the update changes are made. Worse case the system gets reported and then gets fixed. I don't think it's too complicated less than 1000 lines of code plus minus with like 400 lines on my screen at once with like 30 lines each side of the zero balance variable.
@jovincebrillantes1042
@jovincebrillantes1042 24 күн бұрын
So they're called closures, well I'll be dammed. I've been calling them higher order functions all this time.
@rico454
@rico454 23 күн бұрын
They are kinda the same thing. Higher order functions return a function and usually, the function that is returned has access to variables inside the original function which is what closures is. So yeah different concepts but essentially the same thing
@arunkaiser
@arunkaiser 25 күн бұрын
First comment
@aniketroy03
@aniketroy03 25 күн бұрын
autograph pls 😂
@Pacvalham
@Pacvalham 25 күн бұрын
🥇
@AchwaqKhalid
@AchwaqKhalid 25 күн бұрын
Dude increase your *FONT* size for tutorials at least 💡
@alpaca_growing_kit
@alpaca_growing_kit 25 күн бұрын
If you work with React you desperately need to understand closures. I have run into some insane React bugs that were created because of closures in complex functional React.
@alpaca_growing_kit
@alpaca_growing_kit 25 күн бұрын
HINT: Watch out for modifying an onChange when its getting prop drilled. Another reason to create context hooks as often as possible...
@looming_
@looming_ 25 күн бұрын
Fact that this dude didn’t mention react once makes me question his understanding. Also the fact he messed up the for loop example.
@jasonsworld333
@jasonsworld333 25 күн бұрын
Too bad the jobs are all taken lol
@anothermouth7077
@anothermouth7077 25 күн бұрын
In Same boat 😂
@trombecher
@trombecher 25 күн бұрын
If you have a global function that captures a variable from the outer (global) scope, then this function is a closure, because a closure is a function that captures variables from the parent scope. Even if you are calling console.log, because console is a variable in the global scope, you are capturing a variable and therefore your function is a closure. The only functions in JavaScript that are not closures are pure functions. Please do some research before making a 13min video about a topic.
@looming_
@looming_ 25 күн бұрын
Really makes me wanna buy his “course” xd
@manit77
@manit77 21 күн бұрын
This is not true for all programming languages. JavaScript is an anomaly.
@zfolwick
@zfolwick 19 күн бұрын
god I hate javascript
@b1studio648
@b1studio648 19 күн бұрын
Why u move ur head too much? Can you hold your head still while recording or move less. I would appreciate it. The way u move your head makes me dizzy
@logimw
@logimw 20 күн бұрын
why your head bouncing so much? it's very disracting no matter how valuable content you show (always very valuable)
@AdolfRizzler41
@AdolfRizzler41 25 күн бұрын
Do a video on booty sizes
@abcdabcd8605
@abcdabcd8605 25 күн бұрын
What does that even mean?!!
Why Signals Are Better Than React Hooks
16:30
Web Dev Simplified
Рет қаралды 467 М.
If You Cannot Name All 5 JS Scopes You Need To Watch This Video
15:06
Web Dev Simplified
Рет қаралды 53 М.
НЫСАНА КОНЦЕРТ 2024
2:26:34
Нысана театры
Рет қаралды 1,4 МЛН
Double Stacked Pizza @Lionfield @ChefRush
00:33
albert_cancook
Рет қаралды 113 МЛН
Эффект Карбонаро и нестандартная коробка
01:00
История одного вокалиста
Рет қаралды 10 МЛН
5 Design Patterns That Are ACTUALLY Used By Developers
9:27
Alex Hyett
Рет қаралды 233 М.
Learn TypeScript Generics In 13 Minutes
12:52
Web Dev Simplified
Рет қаралды 247 М.
Responsive Flexbox Layout in 2 Minutes
2:41
SolarDev
Рет қаралды 30 М.
These CSS PRO Tips & Tricks Will Blow Your Mind!
8:48
Coding2GO
Рет қаралды 164 М.
Learn JavaScript Scoping In 10 Minutes
11:39
Web Dev Simplified
Рет қаралды 59 М.
The Most Important Skill You Never Learned
34:56
Web Dev Simplified
Рет қаралды 183 М.
Learn Every CSS Selector In 20 Minutes
19:38
Web Dev Simplified
Рет қаралды 444 М.
JavaScript Closures Tutorial (Explained in depth)
19:03
ColorCode
Рет қаралды 66 М.
Only The Best Developers Understand How This Works
18:32
Web Dev Simplified
Рет қаралды 93 М.
НЫСАНА КОНЦЕРТ 2024
2:26:34
Нысана театры
Рет қаралды 1,4 МЛН