Tricky JavaScript Interview Questions and Answers
Вставка
- Опубліковано 9 лют 2025
- Hard JavaScript Interview Questions and their possible answers ( cracking difficult coding interview questions )
For more interview questions checkout
*www.fullstack....
Please be my patreons on patreaon
/ techsith
Follow me for technology updates
/ techsith
/ techsith1
Help me translate this video.
www.youtube.com...
Note: use translate.goog... to translate this video to your language. Let me know once you do that so i can give you credit. Thank you in advance.
Thank you, many times on an interview it becomes obvious the interviewer watched these videos too.
Honestly, I am happy that I found your tutorials. Now I am feeling a little bit comfy so I can prepare for the interview without worries
Same here buddy
this was really helpful. i am using javascript for many years but never knew of so many features like freeze and seal
you proved that .. those are really useless
@@fidaLMFAO yeah they sound really dangerous tbh... why would i ever wanna make something completely immutable
This man is capable of explaining things well in a simple way, the way few people do. Thank you, sir.
I appreciate that!
For 3:00 question, I think in this solution that works for the input provided:
var nums = [1,2,2,3];
nums.splice(2,1);
console.log(nums);
I know it looks a bit silly but, hey, I got the answer. Obviously, if there is more than one duplicate, then the Set works fine.
If you want to crack these questions then just ask the interviewer where he has used such scenarios. You'll be instantly selected
I'll add it to my *How to look smart in an interview* trello card, thanks!
The point is not to use it, the point is that as a senior you should be aware of the dangers of using tricky codes like this and stop others for doing something like 5 < 6 < 7 even if it works
I been denied on the last round of interview with CTO because of this answer. Everything was great until he decided to gave me a logical puzzle "You need to measure exactly 6 liters of water. But you only have a 4-liter and a 9-liter bucket. How can you do this?" I asked him "How often you guys are measuring water here with buckets" and been rejected right away...
@@anthonya606 Better off not working for them. Too egoistic if they cant even take a simple joke.
@@anthonya606 The thing being measured is irrelevant, they just wanted to test your problem solving skills. Although if you clarified that you were joking and still willing to try but they didn't want to hear it, then yea fuck 'em.
Object.freeze ---> Prevent any write operations in that object. Object.seal ---> Able to edit existing data in the object, but not able to add anything new
Thanks Sir for the videos you make.
About removing duplicates, if anyone does not want to use ES6, here is how it should be done in ES5.
var a = [1,2,2,3,4];
a.filter(function(value, index)
{
return (a.indexOf(value) == index)
});
here i have a tutorial on how to remove duplicates multiple ways. ua-cam.com/video/dvPybpgk5Y4/v-deo.html
yes but he says you only have 1 line of code to solved it, and cannot use loops
and the problem with filters is it will take a lot of time to run, I mean running time is far more than SET that's why we should never use filter
@@owaisali995 i was not aware of this, can you explain a little more, or perhaps can share some material on this. Thanks in advance
oh god, i wish i never sit in front of you in a js interview.
@ThuatNham Hey can you please share secrets to crack interview
They aren't very good secrets if its in a youtube video!
lol
You must wish, if you want to learn more 😁
I feel sorry for companies who ask these silly questions.
This is the worst test possible to know if someone is an amazing programmer, a good programmer, a so so programmer, and someone who's really bad at programming that has no self awareness to how bad they really are.
seriously, if it were me going through the interview, I would withdraw my application form, greet the interviewee in front of me and say "Thanks, but no thanks".
This vid was meant to subs both your channels. Thanks a ton!
Thanks for watching!
I've been watching u for a while now, and your didactics (and thumbnails) are the best. Subscribed!
@7:00 thats pretty interesting, and depends on the direction of associativity.
< and > (I hope those show up, less than and greater than) have left-to-right associativity.
= (equals sign) has right-to-left associativity, which is why we can do a = b = 4
developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence
its like difference between these two .. console.log('1'+1+1)..and console.log(1+1+'1');
these questions are so good, they give you a deeper understanding of javascript
Great video. Each question taught me a concept I barely knew. Thanks for this gem !!!
Glad it was helpful!
Reason behind "arguments" not working with arrow functions is that they take the scope of a parent block :3 so it actually shows parent function's arguments
Great class and very well explained.
Please keep this channel because I´m sure It has been helped a lot of developers which try learning more each single day like me.
Thanks
8:43 - me at my homie house.
These are all code puzzles (not challenges) that an interviewer would use in hopes of eliminating a candidate that they've already decided they don't want but have to appear to give them a fair chance.
I would not want to work with a team that codes like that. And I sure wouldn't use their application. It would have a billion bugs.
At my previous job, I have seen people making really silly mistakes and I realized that they never learned java Script fundamentals rather they jumped to a framework and paid the price.
techsith Object.freeze is not JS fundamentals, it's minitiae that should be looked up to solve a specific problem.
Hey @Christopher If we remove DS and Algorithm then what should be a challenges in JavaScript.
Completely agree. For instance, whilst it can be useful to immediately know intricacies of performing stupid actions in dynamically / weakly typed languages it is far better not to code yourself into them, as one will evetually catch you out! Just because the language allows something, it doesn't necessarily make it sensible to do/ use. And I would also not wish ship code that will be a maintenance nightmare.
Can u help me prepare for a java interview next week bro?
2:20 first I just did this
let nums = [1, 2, 2, 3];
nums= [1, 2, 3]
Hello. Can i say something ?
You are the best teacher of JS in the whole WEB :)
Yes True. He is outstanding really
Amazing how much I DON'T know,
A great way to actually learn Javascript, or any language is to tackle questions like these,
Learning New methods is never going to harm you as a programmer.
I spent over ten years as a C++ programmer, one day, took an online course and realised I probably only knew about 10% - 20% of the language.
Very nice video.
The second question would still take O(n) Time and space complexity, not using forloop doesn't mean that you improved it.
as "+" behaves as concatenate operator in first console JavaScript automatically converts int 2 to string and concatenate to result into = 22. While in second console log "-" acts as subtraction operator and converts string to integer and results to = 0.
Thank you so much for these tricky things! Reallly useful.
I have no words to thank you sir.... it's really really very helpful and your explanation is great🙏🙏🙏
// Keep in kind that Object.freeze(object) method is a "Shallow Freeze"!
let obj = {
name: 'Rango',
address: {
street: '33 eastbound',
city: 'Toronto'
}
}
Object.freeze(obj);
obj.address.city = 'Montreal';
console.log(obj);
// You will see the 'city' has been changed to 'Montreal'.
// As, Object.freeze() method is a "Shallow Freeze" which will only protect upto one level deep. Hence, deeply nested Objects within that can still be modified.
Yep. Good solution.
best explanations in most of the tutorials
Thanks for watching!
I always try to get Why part of the answer. It makes me better developer and good at what I do at work. Its shame most people watch these tutorials for jobs! not become better.
I would have to say, these are all basic and common questions during Chinese Internet Company interviews. The suggestion is that you need to read the book Professional Javascript.
xuexue
I wouldn't ask these types of questions in an interview. If anyone wrote code that is so ambiguous, I would question their motives
True. These are questions for interviews. Not really what you will encounter in a code base, because it is really testing the edge cases of JS.
@@cancanjaker1620 I find that it helps to know these quirks so that you can figure out where/how a bug happened when you do something weird like numVariable + stringVariable by accident
@@Daniel_WR_Hart but when writing in an actual code base, you will know the type of variables you are getting and the code written should already handle the cases properly. Also if you consider unit testing, these types of variable quirky bugs are the most easiest to weed out without having to learn about JS "weirdness". As much as I like JS and all these interesting edge cases, code writing do not require developers to answer these from memory. Good code is clear and leave little room for these fun but hair-pulling quirks.
@@cancanjaker1620 But that's not necessarily the case if you're a noob working with a team of noobs and nobody knows what unit testing is. Lately I've been working hard to get gud so that won't be an issue anymore.
Also, when working on my own personal projects, whenever I need to convert a string into a number I prefer string - 0; over parseFloat(string); since it's more concise and I already know at a glance what - 0 would be used for.
@@Daniel_WR_Hart a noob should be learning coding best practices and writing tests instead of getting smart with using quirky language behavior. Which is why most of these interview questions are for "feel good" and ego stroking. They don't indicate a good coder or a team player. With regards to using - 0, it is concise, but the intention of the code is murky, whereas parseFloat is immediately clear to everyone even a non-JS coder. Which means you save JS coder from have to spend time thinking of what - 0 will do, and also save confusion for new coder who move over from another language.
for the second problem, you can convert the array to a string, remove the first number 2 with replace() and then split the resulting string back into an array
nums.toString().replace(/2,/, "").split(",")
The problem involves removing duplicates. Your solution will only remove 2. It will not work for any other duplicates
If we need a revision of JavaScript, we watch your videos and interview questions.. Thank you so much
Great video! You're a very good instructor and easy to understand as well.
Day by day am becoming a pro developer watching your videos :)
Oh damn this is so tricky, then I think there should be many more tricks to ask these kind of questions. Thanks to Techsith
JazakAllah Aameen 🙏 🤲 😍
After this one, I had to subscribe.
Thanks for subscribing!
Me too!
Thank heaven's for Typescript. There was only one of these I got without thinking
Yes TypeScript is a blessing.
You not only taught us interview questions but also how to learn language passionately..!!
To learn language passionately this video might help. ua-cam.com/video/X1omyGA67Vg/v-deo.html
Great teaching! I have been searching this kind of videos for a long time. Thanks.
Quality content and youtube put restrictions on it. World can't be more unsafe than this.
Dude you killed it ... Thank you so much for the tutorial!!
Dude I love you, please keep these going
The unique values in new array can be achieved by Set object and spread operator as following,
const numbers = [1,2,2,3];
let uniqueNumArr = [... new Set(numbers)];
console.log("Unique Array : ", uniqueNumArr);
Yep that is the shortest way of doing it. :)
Very important tutorial for fresher as well as experience person
you are too good at explaining . how do you do this !
i understand even if it not understandable..........
Great videos, may i now what is online tool you use on videos for writing the code.
Sir, upload more videos. These videos are extremely useful. You are explaining things that people couldn't find in other tutorials.
Syam, I am glad that you are finding the videos very helpful. Keep I have lots of tutorials on fundamentals of JavaScript , Node, CSS , React and interview questions.
The first problem you mentioned. the actual term used is Type coercion.
Hello sir, Have you created videos in nodejs?
would I be wrong if I said, " nums.splice(2, 1);" for the 2nd question? you said not to use some methods, I do know which one you meant. this is one line so it should give us the desired result.
you can use splice. what I mean, trying out new things that you dont know may not know in an interview is a danger.
Really need to thank you for a great in-depth video , i attended a client interview and i was able to answer it because of this .
Glad to help out?
Loved and subscribed. Just one question:
8:34 - You write retrun but it still worked as if you wrote return. How?
Cool video. Thanks for the information!
Awesome techsith!! This is very helpful.
Sir, you are grand master in JS. Thank you just keep us updating in js. 😊
Thank you, I will Aishwary!
Awesome video sir. Thank you
Thanks Sir for this video ... it really help us
Very useful information!
time 11:45
can't we declare profile as const, instead using freeze?
Hi Its great thanks for teaching too instead of only giving the answers, You are letting us think, Great thanks for the videos. And if you have video on spread operator do let me know I was asked this in one of my Interview I have an obj ={ name :" likitha",age : 30 } if you want to change the name property alone to be modified ,you can use spread operator { name: "lohitha" ,...obj} ->this is the answer anyways -> {name : "likitha"} ,but I had no idea of how spread can work in different ways how do they come up with this , I know the spread operator but I am not aware of this option ..,Please do let me know..
I have a tutorial on applications of spread operator. THere I explain a lot about it. Please check it out.
@@Techsithtube sure
Thank you so much for the video... helped me a lot.
Hi sir I'm biggest fan of your tutorial. Its helping us too lot to gain our knowledge. I have a doubt sir can please explain how to skip a single num from an array for example if array a[1,2,3,4,5,6] and from this if i want to skip the 3 and show remain. Thank you sir.
you can do let x = [1,2,3,4,5,6]
x.splice(2,1)
console.log(x)
@@Techsithtube thank you very much sir....😇😇
Awesome Sir!!
Nice video, just like the past one
Glad you liked it
Hey Techsith, What JS editor in the video u using?............... BTW Awesome videos!!! (If any one else knows plz respond)
I use JSfiddle.
Not sure I understand why it would compare to -Infinity. It seems like it should see the length of arguments and return the first one if there's just one. If there are more, it should start comparing them to each other. Not sure how -Infinity logic comes into play. If you pass nothing, I'd actually expect it to return Infinity, not the opposite. I'm not sure if the way it works is based off how you do things in math or just a base assumption made by JavaScript authors.
Lot of things in JS is based on how JS was written. So this is one of the things.
Very cool stuff!
Great video sir.. Please keep posting such contents
Thank you so much sir for these fantastic questions this helps me a lot
I don't understand why there're so many haters... Those are actually good and valid tricky questions. Btw sir, you mentioned that you have another channel that teaches algorithm and data structures, where is the link?
My other channel is interviewNest
clearly explained sir. I faced some questions during my interview. Can you please explain them as well?
these are the questions:
console.log(!![].length);
console.log(!!' ');
console.log(1+2+"3"+4+5);
console.log(1 + true);
I have checked the answers but need to know thoroughly the theory behind it.
1) console.log(!![].length): is false because array length is 0 , !0 is true as it converts to true and !!0 converts to true.
2) console.log(!!' ') : same for the next but because " " has positive length , it would be reverse form the first example
3) next two are silly, answers are "3345" an 2.
techsith thank you so much 😊
thanks for everything ..a small request they usually interviewer ask ..where you have implemented this in project ,for closure and other things
Thanks a lot techsith!
as usual awesome video from techsith..keep doing your great job sir.
Thank god u r not my interviewer.... Well I'm a new subscriber.....
I am a reasonable interviewer, I would never ask anything like this. Unfortunately some people do ask this kind of questions. :)
@@Techsithtube thank you fa ur kind reply and making these kind of videos which is really helps to me fa preparing myself to face my interviews. ..
Now I know what to ask incoming interviewees!
charles, dont scare the candidates with such questions. :)
Helpful tutorial thank you
6:32 let mean scope of the variable is in bracket or local in method..
excellent video
Thanks for this amazing video.. I was eagerly waiting for next next questions !!!!
a good set of questions well explained ty @techsith
Thanks a lot of man. Very interesting video.
Glad you liked it!
Nice one. Thank you for uploading
wonderful that's what we need
good for interview practice in Javascript Frontend
Thanks for watching!
Hi nice tutorial sir. I have one doubt as -1 is not greater then 0 then Math.max() should return infinity instead of -infinity when no argument is passed and same for Math.min() should return -infinity instead of infinity. If i am wrong then correct me. Thanks
You are wrong!
Thank you so much sir ❤️
This video was amazing!
Nice explanation.
Q2--Remove duplicate from array
Ans:- arr2 = [...new Set(arr)];
Isn't 4:03 the rest operator? It takes multiple elements and forms an array.
nope.. there is no such thing as 'rest operator' , there is a 'rest parameter'. visually it looks similar to 'spread' operator, which is in fact an operator..
Superb. Thanks Sir. Can you please do a video on typescript and es6 interview questions?
You are legend bhayya. Super
Thanks J for an awesome comment. Keep on learning!
This is well explained excellent tutorial. In very short time you covered a lot.
This is more useful beyond only pass the interviews.
Thanks for the nice comment :) and thanks for watching!
Thank you very much for sharing I really appreciate it.
Amazing content..!
Question: Whats the difference between object.freeze and const?
const wont let you replace the entire value of the object. with Object.freeze you can not change value of object properties. good question
I loved this video, thanks !!
tmrw is my web development interview...hope it will be helpful
Very useful!