🔴 Get my Complete Frontend Interview Prep course - roadsidecoder.com/course-details ➡ Book an Interview Preparation call with me ( 20% OFF for limited time ) - topmate.io/roadsidecoder 🟪 Follow me on Instagram and u will clear your interview 🤓 - instagram.com/roadsidecoder/
Great content, i recently gave a interview in cleartrip they asked this 4 question 1) write polyfill for promise 2)deep comparison of object 3) polyfill for call, apply,bind 4) polyfill for map, reduce,filter, forEach. It's help me and others if you can cover this questions
Bro thanks for sharing such knowledge in your videos but at the same time you need to make sure you are doing it right as so many people are watching these content , here in memoise polyfill your code is mistaken Json.stringyfy(...args) will not return us "500,500" in res object instead it will just jive us the first value of the array as we are not iterating the args array therefore even if we pass (500,500) and (500,600) as args we will get the same result and in the second function call res will mark the args as present in the object already, so to avoid we can do argsCache = args.join(",") then it will store in the res object as explained in the video by the way thanks for your content. happy coding to all
Hey Piyush that Time Optimisation part was something new that I learnt today 16:20. Can you explain the the exact reason what closures did such that it took less time to execute the function
Thankyou for this knowledge packed closures' video Pyiush. It is the most detailed video I found on RUclips and it covers all the important questons. Please make more of such content 🖖👍👌
Videos are good. But one suggesting instead of asking us to refer ur previous video just explain the functionality in one line & it will be much much helpful...
"At 22:51, wouldn't creating the inner function inside the loop lead to a new function being created in memory every time? I think a better approach would be to define the function outside the loop, so it's created only once. This way, the function can be reused, which is more efficient." function print(num) { setTimeout(()=>{ console.log(num) },num * 1000) } for(var i = 0;i
For those of you wondering how to fix the var scope issue with closure. const c = () => { for(var i =0; i < 3; i++){ ((i) =>{ setTimeout(() => { console.log(i); },1000); })(i); } } c();
Hi RoadsideCoder, great lessons, your explanations are very clear, thank you for all this work! I still have a question about "Question 8 - Once Polyfill Implementation" You pass a "context" argument and then apply it to the function, but I don't quite understand in which cases it would be useful? In your example "this, arguments" are applied, and everything would work even if we delete "context" from the code. When is it useful to pass a "context" and what kind of data is expected for this argument?
please add some algorithm questions and class / constructor functions question which are often ask in interviews. for example: implement a MinStack. By the way, a friend of mine got the setTimeout with var and let question in his last interview.
@Roadsidecoder For the time optimization without using closure part , as i give higher number time taken is less, any idea why is this happening? function find(index) { let a=[]; for(let i=0;i
In the previous `find` function the loop which filled the array runs a million times on each call. So when you called it twice, first for number 6 and then second for number 12, the loop ran twice for total of 2 million. Basically the loop was running on every call. The optimized `find` function ran the loop once and then returned a function which will just log out the array index value. So when the host run `const closure = find();`, the loop runs and an array is created and a function is returned which is stored in `closure` variable. Now when you use closure variable like `closure(6)` or `closure(12)`, the loop won't run as it has already run and the filled array is referenced to closure function via the concept of closures. So you may run the function 10 times the loop will run only a million times contrasting the previous function which would have ran 10 * million times. Feel free to ask a follow up.
Hi Piyush, As per Ques no. 1 on line number 6 if (count ===0) so count is taking value from outer scope variable , but in below case it is throwing error : VM654:3 Uncaught ReferenceError: Cannot access 'x' before initialization at abc (:3:17) at :7:1 let x = 9 function abc(){ console.log(x); // It should print 9 as in Ques no. 1 count was accessing value from outer scope which is global let x = 5; console.log(x); } abc(); Please explain
Dood it's because of let and const is in temporal dead zone, If condition only executes it's respective code in it's block since let/const has block scope, In his example, count was not there in the function block it' was inside if block. but for your case since there's no block, It first check abc's scope while executing the code, so in the execution context it will first store x in temporal deadzone, so you have to initialize before accessing, Hope this answers your question
what will happen if we create simultaneously two function inside of a function?? like :- function a() { function b() { return "this is clouser or not?"; } function c() { return "is this a closure also ?"; } }
In the once polyfill, can we use call instead of apply? If yes then how? Also you are modifying function param to null right, won't that cause any issues?
case 1 : function x(){ var a = 7; function y(){ console.log(a); var a = 5; } y(); }; x(); output : undefined case 2 : function x(){ var a = 7; function y(){ console.log(a);
} y(); }; x(); output : 7 case 3 : function x(){ var a = 7; function y(){ var a = 5; console.log(a);
wouldn't the function function likeTheVideo(){ if(view !=undefined){ return; } view = 'dave' console.log("subscribe to ",view) } would also allow soolve problem 7 ? Awesome video btw
In the question at 27.40 i.e question no 7, the functionality which you wanted is easily acheived by the below code, let view = 'Roadside Coder '; let num = 0; const singleFunction = ()=>{ if(num > 0){ console.log('already Subscribed') } else { console.log('subscribe to' + view) num++ }
} what is the difference between the code which you wrote and the above code? In my approach, I didn't had to create inner function.
You can do that as well as you have created a global counter but in video the counter is a local variable. Every time you call that function, the counter will be 0 this is why closure is used to store the reference of previous count
Nice video but you did not explain why the time got reduced in the time optimization question… because of this still I have no clarity of the use of closures… can you please reply??? also I saw that you don’t even replies to your subscribers comments… please start replying
🔴 Get my Complete Frontend Interview Prep course - roadsidecoder.com/course-details
➡ Book an Interview Preparation call with me ( 20% OFF for limited time ) - topmate.io/roadsidecoder
🟪 Follow me on Instagram and u will clear your interview 🤓 - instagram.com/roadsidecoder/
not a bad service my friend
These series are true GOLD, if possible keep on adding.
Great content, i recently gave a interview in cleartrip they asked this 4 question 1) write polyfill for promise 2)deep comparison of object 3) polyfill for call, apply,bind 4) polyfill for map, reduce,filter, forEach. It's help me and others if you can cover this questions
Did u apply for entry level job ?
Did they asked DSA. Will it be ok if I will solve the DSA questions in c++ instead of javascript. What do you think
They hiring for ui developer so doing DSA in javascript gives you advantages over other candidates
I never found something like this on youtube
Gr8 job man
hes awesome seriously-knowledgeable to
Through middle of this session and I already feel enlightened. Thank you so much :D
Wonderful!
Please do asynchronous/ concurrency javascript interview questions. They are the toughest. Thanks for this!
Worthy 40 minutes.
Keep sharing this kind of videos :-)
yup i agree
Thanks a lot 🙏
This series is god level series 🔥🔥🔥
Most awaited video....👏💥
UseFul Content With Endless Wishes
your Interview series is amazing 🔥 and worth watching 🚀
Thank you!
use IIFE to make it work with var
for (var id = 1; id
This guy is great - good content and personality to
Thanks 🙌❤️
Bro thanks for sharing such knowledge in your videos but at the same time you need to make sure you are doing it right as so many people are watching these content , here in memoise polyfill your code is mistaken Json.stringyfy(...args) will not return us "500,500" in res object instead it will just jive us the first value of the array as we are not iterating the args array therefore even if we pass (500,500) and (500,600) as args we will get the same result and in the second function call res will mark the args as present in the object already, so to avoid we can do argsCache = args.join(",") then it will store in the res object as explained in the video
by the way thanks for your content.
happy coding to all
You are terrific.
What did I just watch! Going to purchase your course 🎉
Best decision 😎
Great.... content quality...
Thanks a lot 🙏🔥
Hey Piyush that Time Optimisation part was something new that I learnt today 16:20. Can you explain the the exact reason what closures did such that it took less time to execute the function
same doubt can anyone help
Thankyou for this knowledge packed closures' video Pyiush. It is the most detailed video I found on RUclips and it covers all the important questons. Please make more of such content 🖖👍👌
Thanks! I have created an indepth course covering all such topics - roadsidecoder.com/course-details
Videos are good. But one suggesting instead of asking us to refer ur previous video just explain the functionality in one line
& it will be much much helpful...
"At 22:51, wouldn't creating the inner function inside the loop lead to a new function being created in memory every time? I think a better approach would be to define the function outside the loop, so it's created only once. This way, the function can be reused, which is more efficient."
function print(num) {
setTimeout(()=>{
console.log(num)
},num * 1000)
}
for(var i = 0;i
For those of you wondering how to fix the var scope issue with closure.
const c = () => {
for(var i =0; i < 3; i++){
((i) =>{
setTimeout(() => {
console.log(i);
},1000);
})(i);
}
}
c();
function a(){
for(var i = 0; i {
console.log(val)
}, i*1000);
}
}
for(var i = 0 ; i < 3 ;i++){
(function(i){
setTimeout(()=>{
console.log(i)
}, 1000*i);
})(i)
}
I genuinely enjoy your videos. will be giving interview in 2 months. Keep up the good work.
Best of luck!
me to
such a wonder full video with superb explanation,. Thanku so much for this information.
Welcome ❤️
At 34:00 , The apply method takes the array of arguments but you are passing it separately just like we pass in the call method, how does it work?
Great content on closures keep making more and also make on React challenges which are asked in interviews
Thanks a lot!
true
What a wonderfule video!! Got to learn so much.. thanks a lot ❤❤❤
Your explanation is very clear and the content is very useful. Can you make series for MERN interview questions
Great awesome amezing ....♥️💯
I don't have words for you ...
Really nice content.....
Keep it up
Thanks a lot brother
Hi RoadsideCoder, great lessons, your explanations are very clear, thank you for all this work!
I still have a question about "Question 8 - Once Polyfill Implementation"
You pass a "context" argument and then apply it to the function, but I don't quite understand in which cases it would be useful?
In your example "this, arguments" are applied, and everything would work even if we delete "context" from the code.
When is it useful to pass a "context" and what kind of data is expected for this argument?
Waiting... Hope we also get some logical type questions in it
Yes it has a lot of awesome logical questions!
@@RoadsideCoder thanks sir!
ahh this video finally made a bunch of things click for me, thanks man!
Amazing 🔥🔥🔥 thanks for that.
Excited for this video 🤩
🙌
Amazzingg 🎉🔥
Thank you for the great resource.🤝
very grateful to your contribution man🙌..
Thank you for appreciation ❤️
Thanks Piyush brother
please add some algorithm questions and class / constructor functions question which are often ask in interviews.
for example: implement a MinStack.
By the way, a friend of mine got the setTimeout with var and let question in his last interview.
here are the algorithm questions - ruclips.net/p/PLKhlp2qtUcSZtJefDThsXcsAbRBCSTgW4
Superb dear
Thank You Bro!!!
You're welcome!
make a video on async await and callback hell
Sure!
hello sir
like i m from commerce to learn deeper n easy understanding before entrying in full stack should i do any course before that can u say plz
Eyes on fire🔥🔥
Answer for 21:48 timeline
var funcs = [];
function createfunc(i) {
return function() {
console.log("My value: " + i);
};
}
for (var i = 0; i < 3; i++) {
funcs[i] = createfunc(i);
}
for (var j = 0; j < 3; j++) {
funcs[j]();
}
Hope it helps for you guys
for(var i = 0 ; i < 3 ;i++){
(function(i){
setTimeout(()=>{
console.log(i)
}, 1000*i);
})(i)
}
this is what roadside coder wants
Many thanks for this video. It's really helpful to clear my concepts. My praises and lots of love to you.🙌❤
Thanks a lot 🌸❤️
Great Video! Design patterns at the end of series?
Sure, I'll add them as well!
100 of years of Reasearch lol 0:12
Nice video but you did not clearly explain why the time got reduced in the time optimization :(
I'm assuming it is meoizing the values underthe hood!
@Roadsidecoder For the time optimization without using closure part , as i give higher number time taken is less, any idea why is this happening?
function find(index)
{
let a=[];
for(let i=0;i
17:47 why did this take less time please explain?!
Great brother very helpful ❤️👏
Bhai please ek personal portfolio website making ke bare may sikhao next video may please 🥺
Yes, video for that will be coming soon!
how 'ran' variable storing the value return by 'func.apply()', because 'apply()' method does not return any value?
i didn't understand how closures helped in question 3 - Time Optimization .
Can anyone please help?
17:40 how did closure saved time can anyone explain ???
In the previous `find` function the loop which filled the array runs a million times on each call. So when you called it twice, first for number 6 and then second for number 12, the loop ran twice for total of 2 million. Basically the loop was running on every call. The optimized `find` function ran the loop once and then returned a function which will just log out the array index value. So when the host run `const closure = find();`, the loop runs and an array is created and a function is returned which is stored in `closure` variable. Now when you use closure variable like `closure(6)` or `closure(12)`, the loop won't run as it has already run and the filled array is referenced to closure function via the concept of closures. So you may run the function 10 times the loop will run only a million times contrasting the previous function which would have ran 10 * million times. Feel free to ask a follow up.
@@ashwinbhargava3011damn, it's clear now.
Thanks for the explanation 🤜🤛
next video please on how this concept in applied in ReactJS
In the private counter example, is the _counter variable not initialized every time the add or retrieve methods are called?
I love your channel bro. Are you a self taught developer? I’m trying to learn react js and struggling a little bit
Yes I'm a self taught dev, contact me on Twitter and I'll help u out!
what area all those extensions creates yellow line to tell bracket closings etc
the example at 10:01 is function currying, right?
@roadsideCoder
please make some videos on React interview questions.
Coming soon
For revision :
Q)What is closure?
A)The function bundled with its lexical environment closed to that function
simply function + Lexical environment
Hi Piyush,
As per Ques no. 1 on line number 6 if (count ===0) so count is taking value from outer scope variable , but in below case it is throwing error : VM654:3 Uncaught ReferenceError: Cannot access 'x' before initialization
at abc (:3:17)
at :7:1
let x = 9
function abc(){
console.log(x); // It should print 9 as in Ques no. 1 count was accessing value from outer scope which is global
let x = 5;
console.log(x);
}
abc();
Please explain
Dood it's because of let and const is in temporal dead zone, If condition only executes it's respective code in it's block since let/const has block scope, In his example, count was not there in the function block it' was inside if block. but for your case since there's no block, It first check abc's scope while executing the code, so in the execution context it will first store x in temporal deadzone, so you have to initialize before accessing, Hope this answers your question
Why do we need to call a function and save it im variable and then again call it with that variable????
what will happen if we create simultaneously two function inside of a function?? like :-
function a()
{
function b()
{
return "this is clouser or not?";
}
function c()
{
return "is this a closure also ?";
}
}
Nothing. Because neither function ends up getting called.
In the once polyfill, can we use call instead of apply? If yes then how? Also you are modifying function param to null right, won't that cause any issues?
Yeah, in call you can spread the arguments array
i wanted to ask! from where you learnt JS??
MDN Docs
Hello sir
How are you?
Please do more new series on nodejs with socket that use real world application!
Thank you❤️
Yeah, Definitely bro ❤️
@@RoadsideCoder can't wait your new series and please do more series on nodejs expressjs🙏🏽🙏🏽
Thank you❤️🙏🏽
Follow me on Instagram @RoadsideCoder to stay updated!
@@RoadsideCoder sure sir
case 1 :
function x(){
var a = 7;
function y(){
console.log(a);
var a = 5;
}
y();
};
x();
output : undefined
case 2 :
function x(){
var a = 7;
function y(){
console.log(a);
}
y();
};
x();
output : 7
case 3 :
function x(){
var a = 7;
function y(){
var a = 5;
console.log(a);
}
y();
};
x();
output : 5
Wooow🔥🔥🔥🔥
wouldn't the function
function likeTheVideo(){
if(view !=undefined){
return;
}
view = 'dave'
console.log("subscribe to ",view)
} would also allow soolve problem 7 ? Awesome video btw
Make this run only once question.. can we do it using Boolean? By default var will be false once it's called it becomes true
Yeah of course
Vikas
Vishal
i have to change all li :
script :- let li = document.querySelectorAll('li')
li.forEach(elm=>{
for(let i = 0; i
li. Foreach((el, indx) => el. Textcontent = indx)
But as a React js Developer, i have never used apply, bind, this
Can you make for react
Could you please do nodejs projects
I have on bro-free
How many years of exp do you have? I'm preparing for 2 years and and I'm really very exhausted
2
I am following your MERN chat app playlist and I need your help .Can you help me?
Sure, contact me on instagram @RoadsideCoder
for(var i=0;i
can someone explain me question number 3 please????
In the question at 27.40 i.e question no 7, the functionality which you wanted is easily acheived by the below code,
let view = 'Roadside Coder ';
let num = 0;
const singleFunction = ()=>{
if(num > 0){
console.log('already Subscribed')
} else {
console.log('subscribe to' + view)
num++
}
}
what is the difference between the code which you wrote and the above code? In my approach, I didn't had to create inner function.
You can do that as well as you have created a global counter but in video the counter is a local variable.
Every time you call that function, the counter will be 0 this is why closure is used to store the reference of previous count
I'm not getting the 100 years of good luck, what needs to be done?
Follow @Roadsidecoder on Instagram
Nice video but you did not explain why the time got reduced in the time optimization question… because of this still I have no clarity of the use of closures… can you please reply??? also I saw that you don’t even replies to your subscribers comments… please start replying
let count = 0;
(function caller() {
if(count === 0){
var count = 1;
console.log(count);
}
console.log(count);
})(); can anybody explain why this code gives undefined only
Waiting
💯👌👌
🔥🔥🔥🔥
Sir last ke 2 samjh me nahi aayebilkul bhi context and aaplly
Wrong. A closure is not a function
What???
did I just see hair extension ads on your browser ? lol
-var doesnt have a block scope !!
-private counter
Module pattern private functions are not returned
Nice way of explaining Buddy ....
Try explaining in Hindi too .... Might increase lexical scope 😀 Thanks for researching and sharing knowledge 👏
Hahah good one!
Love 💕 from Pakistan
❤
Sir please try to explain in hindi
function Namedis(){
var name="aksuman";
}
Namedis()
console.log(name)
iam doing same thing but i am not getting error with this why?? unable to find answer plz help
Please change your variable name because name is a reserved keyword in js
{2022-05-18}
function a() {
for (var i = 0; i < 3; i++) {
(function(i) {
setTimeout(() => console.log(i), i * 1000);
})(i);
}
}
a();
You literally do 100 of years of research?🤣🤣🤣🤣
stop smoking weed so high..
function fetchUsers(url, callback) {
setTimeout(
() =>
callback([
{ name: "John", id: 1 },
{ name: "Doe", id: 2 }
]),
100
);
}
function getUsers() {
let users;
fetchUsers(`/api/v1/users`, (res) => {
console.log(res);
users = Object.assign([], res);
console.log(users);
});
return users;
};
function logUsers() {
console.log("Users are: ", getUsers());
}
logUsers();How i can solve this for console.log