3.5 Years Experienced Best Javascript Interview | Chakde Frontend Interview EP - 02
Vložit
- čas přidán 9. 05. 2024
- Hello folks!! First of all, I am so thankful to you all for all the love and support you have given to the first episode of "CHAKDE INTERVIEWS" and as promised I am rolling out another episode of "CHAKDE INTERVIEWS" on the most popular Javascript questions in interviews. Check it out and share it with your friend.
Connect to learn & grow together in our career❤️:
✅ Linkedin: / engineerchirag
✅ Twitter: / engineerchirag
✅ Instagram: / engineerchirag
Music track: Wanderer by walen
Source: freetouse.com/music
No Copyright Background Music
#interview #react #javascript #chakdeinterviews #frontenddevelopment #mockinterview
Thank you very much for inviting me for this mock interview round chirag sir. Really loved the thrill of mock interview of Microsoft 😀
Always welcome! Thanks for coming ❤️
can you pls share the link where you refer at 28:40
For the first problem we can define all these methods in the prototype object, declaring inside calculator will create copy of these methods in each object which is over burden to maintain.
function compute(){
this.amount=0;
}
compute.prototype.lacs = function(val){
this.amount = this.amount+val;
return this;
}
compute.prototype.value = function(){
return this.amount;
};
@chirag once again it's tricky , unique and knowledgeable questions from your side. Thanks , Please keep posting.
Thank you, I will. Keep watching, keep sharing ❤️
Absolutely one of the great interview i watched , i am learning a Lot from this interviews , whcih will definatly help me in my upcoming interviews.Thanks you so much.
Awesome ❤️. Do share in your network as well. 🙏
Good interview Again, Learning new things ✌
Thanks Chirag for investing your time in conducting mock interviews, Immensely helpful ❤
My pleasure 🙏❤️
For the first problem, one can use recursion and closure to write a solution like below:-
function computeAmount(value, total = 0) {
if (value) {
total = total + value;
}
return {
lacs: function (value) {
return computeAmount(value * 100000, total);
},
crore: function (value) {
return computeAmount(value * 10000000, total);
},
thousand: function (value) {
return computeAmount(value * 1000, total);
},
value: function () {
return total;
}
}
}
but issue is you are passing parameter in actual question we are required not pass any args to computeAmount.
I have mentioned parameters in the function. One does not have to pass argument.That is why null/undefined check is present inside the function. If one runs the function according to the syntax shown in video it should work.
recursion is not optimized way to solve this problem it will consumed memory stack better go with factory function
@@omkarjagtap2212 Yes recursion will consume space on call stack. But in the solution it will be one level deep. The reason is I have kept the data and arithmetic calculations in the parent function. But that can also be fixed. Like below solution:-
function computeAmount() {
let total = 0;
let obj = {
lacs: function (value) {
total = total + (value * 100000);
return obj;
},
crore: function (value) {
total = total + value * 10000000;
return obj;
},
thousand: function (value) {
total = total + value * 1000;
return obj;
},
value: function () {
return total;
}
}
return obj;
}
This will still work.
JavaScript closure concept is all one needs to solve the problem.
one the great interview, learnt new things, please keep do more videos
Thank you! Will do! ❣️
Thanks Chirag Sir for this awesome series...😊❤
Keep watching ❤️
Getting excited
Keep watching, keep sharing. Try to attempt questions by yourself 🚀
@@engineerchirag yes sir I just pause the video and try to solve the problem .
It was totally awesome , super tricky questions.
Glad you liked it ❤️🙏
Thank you chirag sir for this amazing video ❤.lot of things I have learned from this video.
Sir Plz keep posting this type of video🙏
Keep watching ❤️
It was very good interview. Questions are very relatable and the approach to solving question is really awesome. Worth to watch the whole video.
Keep watching ❤️
First probkme based on currying second in this and third was related to getter setter great 👍
excellent work
Thank you! Cheers! ❤️
Nice one
Thanks for watching
@engineerchirag I doubt if there is any actual model state.value. Because the getter, setter actually returns and sets input.value. Printing the state value within those methods or anywhere else can help understand it better. I am yet to try this out myself. Intriguing question though! Thanks for it.
my answer for 1st problem using factory function
const createComputeFunctions=()=>{
let totalAmount=0
return {
thousand:function(amount){
totalAmount+=amount*1000
return this
},
lacs:function(amount){
totalAmount+=amount*100000
return this
},
crore:function(amount){
totalAmount+=amount*10000000
return this
},
value:function(){
return totalAmount
}
}
}
const compute =createComputeFunctions()
const result=compute.lacs(15).crore(5).crore(2).lacs(20).thousand(45).crore(7).value();
console.log(result)
Question 2: FYI those who couldn't get why maximum call stack size exceeded
In order to access the state.value it has to call "get()" function again => inside get function it's returning "state.value" so basically it's creating N number of "execution context", Each invocation adds a new execution context continues indefinitely.
Start
|
v
Access state.value
|
v
Invoke getter function
|
v
Return state.value
|
v
Access state.value (again)
|
v
Invoke getter function (again)
|
v
Return state.value (again)
|
v
Access state.value (yet again)
| |
| | (This loop continues indefinitely)
| |
v v
awesome
❤️
❤
❤️
Amazing Mock Interview, best for Self Practice and become familiar to such type of questions, is there any particular website or something where we can practice this questions?
BTW amazing video, the community needs more such videos.....loved the work and efforts you have put to make this things available on CZcams. Keep It Up.👍👏
Every Saturday a new video of "Chakde Frontend Interview" will be live - Stay tuned. Keep growing, keep sharing 🚀
As student how is learning web dev,
I learnt a lot, awesome interview ❤
Sir, Pls don't stop this seris
Thank you, I will. Keep learning, keep sharing 🚀
My Approach for first question
const calamount={
val:0,
lakhs:function(a){
this.val+=a;
return this;
},
crore:function(a){
this.val+=a
return this;
},
value:function(){
return this.val;
}
}
function calculateamount(){
return calamount
}
console.log(calculateamount().lakhs(57).crore(567).lakhs(566).value())
day 51 of asking: from where we can prepare these types of questions... question quality is superb
If people thinking what editor it is, it's technical assessment platform codility.
First Q:
function computeAmount () {
this.value = 0
const context = {
lacs: lacs.bind(this),
crore: crore.bind(this),
thousands: thousands.bind(this),
value: value.bind(this)
}
function lacs (number){
const numberInLacs = 100000*number
this.value += numberInLacs
return context
}
function crore (number){
const numberInCrores = 10000000*number
this.value += numberInCrores
return context
}
function thousands (number){
const numberInThousands = 1000*number
this.value += numberInThousands
return context
}
function value() {
return this.value
}
return context
}
console.log(computeAmount().lacs(15).thousands(20).value())
Extremely helpful for all of us.
Thanks chirag for this series.
Could you please share, What is the code editor being used here?
Thanks Yash for feedback. DM me on LinkedIn for details 😊
Thank you so much!
Approaching this as if it's my interview, below is my solution
Q1
Solution: First approach which came to my mind. (passed!)
const computeAmount = () => {
let totalAmount = 0;
let ans = {
thousand : (a) => {totalAmount+=a*1000; return ans},
lacs : (a) => {totalAmount+=a*100000; return ans},
crore: (a) => {totalAmount+=a*1000000; return ans},
value:()=> totalAmount
}
return ans;
}
console.log(computeAmount().lacs(1).lacs(1).thousand(2).value());
Q2
Solution: "hello world, Hello" it wrong, need to improve on it on js!
Q3
Solution:
const input = document.createElement("input");
document.body.appendChild(input);
const state = { value : "Hi" }
function onChangeFunc(e){
console.log("change happened and value is", e.target.value);
let value = e.target.value;
state.value = value;
}
function model(state, input){
input.addEventListener("change", (e) => {onChangeFunc(e)} );
/* need to thing how to add state obj change logic */
}
model(state, input);
console.log(input.value);// Hi
state.value = "dev"
console.log(input.value)//dev
input.value = "engineering chirag"
input.dispatchEvent(new Event("change"));
console.log(state.value);
Have given my raw solutions
Self Review: Need to improve more on JS this keyword, binding part and keep on improving.
Thank you Chirag!
in input we already have `change` event listener so why we dispatch again 🤔
Ans: 1st Problem
function computeTheAmount() {
let totalAmount = 0;
const operations = {
lacs(amount) {
totalAmount += amount * 100000;
return this
},
crore(amount) {
totalAmount += amount * 10000000;
return this
},
thounsands(amount) {
totalAmount += amount * 1000;
return this
},
value() {
return totalAmount
}
}
return operations
}
Which real world project have used atleast one of these deep concepts of js???
can you share that link where himanshu referred..?
Where I can practice such JavaScript questions?
Just watched half part so far, really an amazing interview.
I think there some typo, He has 5 years of experience not 3.5 please correct
Thanks for highlighting. It will rectified soon!
Question 1 - function computeAmount(){
let totalAmount =0;
const returnObj = {
lacs:function(amount){
totalAmount+= amount*100000;
return returnObj
},
crore: function(amount){
totalAmount+= amount*10000000;
return returnObj;
},
thousands: function(amount){
totalAmount+= amount*1000;
return returnObj
},
value:()=> totalAmount
}
return returnObj
}
My solution for first problem:
function computeAmount(args){
let total;
if(!args)
total = 0
else{
total = args
}
//console.log('fi', this)
return {
thousand: (val) => {
total = total + val*1000
return computeAmount(total)
},
lacs: (val) => {
total = total + val*100000
return computeAmount(total)
},
crore: (val) => {
total = total + val*10000000
return computeAmount(total)
},
value: () => total
}
}
Can you also do some React interview questions as well ?
Yes, upcoming interview is on ReactJs. Stay tuned 🚀
No need to do fancy thing in first problem. Returning this will work because instance of function is created when it is called first. I don't know what is the confusion here and it is complicating a simple problem
function computeAmount() {
totalAmount = 0;
this.lacs = function(numLacs) {
totalAmount += numLacs*100000
return this;
}
this.crore = function(numCrores) {
totalAmount += numCrores*10000000
return this;
}
this.value = function() {
return totalAmount;
}
return this;
}
console.log(computeAmount().lacs(15).crore(2).value());
Please provide codes of all the Questions asked so that we can also try it before watching the solution.
Noted. Thanks for idea 💡
@@engineerchirag ❤️❤️
Can we get a separate video for 1 st questions solution
Noted. Will plan one.
I appreciate the efforts. But Nobody uses pure venila javascript now a days. This is just to test the knowledge i guess. But You could have tested in a better way. This is for sure not for 3 years experienced candidate. As it was mock , agreed but real time if you ask most of them will fail to answer. felt bit difficult interview . All the best
function compute(){
return {
amount:0,
lacs:function (params){
this.amount += params * 100000;
return this;
},
crore: function (params){
this.amount += params * 10000000;
return this;
},
thousand :function (params){
this.amount += params * 1000;
return this
},
value : function (){
return this.amount;
}
};
}
is this approach wrong ?
From title I thought 3.5 years of experience 🙂
Yeah, interview level is 3.5+ experience only. Will get it rectified soon!
Hi chirag what is latest version of javascript
ES14 - 2023
Hi chirag I guess best version of Java script is es6
Does MS take all hiring rounds in a single day only?
In hiring drives, mostly yes.
Which editor is it?
DM me on linkedin
Codility
In major frontend interviews these Expectations and Competencies are checked:
1. Code quality (modular and readable).
2. Working Code (separation of concerns, production ready code).
3. Code should easily accommodate new requirements with minimal changes.
4. Core business Logic.
5. Low Level Design (Extensibility).
Sirf Code likha aur ek Acha Scalable Code likhne me jameen asmaan ka fark hota hai...How to write such code. So Please make a detailed video on it bhaiya.
Does actual interview also go like this?
Obviously not
Why so? Why did you feel like that?
@@engineerchirag in actual interview, they don't support or give you hint like you gave
@@shubhanshusahuu it depends if they know u are on right track or not , if u showing them progress then they will help u sometime.
Depends on the interviewer. The intent of the interview is not to reject, but to get the best out of the candidates 😊.
Sometimes you have to ask for hints and suggestions from the interviewer 😄
This Platform name???
DM me
which is this online editor?
DM me
@@engineerchirag how?
Linkedin
Codility
@@FaizanPinjari thank you bro
is this solution correct
function CompoundAmount(){
return{
result:0,
lacs:function(v){
this.result+=Number(`${v}00000`)
return this
},
core:function(val){
this.result+=Number(`${val}0000000`)
return this
},
thousand:function(th){
this.result+=Number(`${th}000`)
return this
},
values:function(){
return this.result
}
}
}
console.log(CompoundAmount().lacs(5).core(1).thousand(1).lacs(2).values())
did u run this
QUES 1 :-
function computeAmount() {
const amount = {
totalAmount: 0,
lacs: function (number) {
this.totalAmount += number * 100000;
return this;
},
crore: function (number) {
this.totalAmount += number * 10000000;
return this;
},
thousand: function (number) {
this.totalAmount += number * 1000;
return this;
},
value: function () {
return this.totalAmount;
},
};
return amount;
}
console.log(computeAmount().lacs(15).crore(5).crore(2).lacs(20).thousand(45).crore(7).value());
My Solution to first problem:
function computeAmount(){
return {
inLac: 0,
inCrore: 0,
inThousand: 0,
thousand: function(value) {
if(value) {
this.inThousand = this.inThousand + Number(value) * 100000;
}
return this;
},
lac: function(value) {
if(value) {
this.inLac = this.inLac + Number(value) * 100000;
}
return this;
},
crore: function(value) {
if(value) {
this.inCrore = this.inCrore + Number(value) * 10000000;
}
return this;
},
value: function(){
return (this.inCrore + this.inLac + this.inThousand).toLocaleString('hi');
}
}
}
I am not sure why can't we simply return an object like above from computeAmount function how does factory design pattern help here @engineerchirag please help
My solution to the first question after watching the video till 11.55, without googling
function computeAmount() {
return {
totalAmount: 0,
crore(crore) {
this.totalAmount += crore * 10000000;
return this;
},
lacs(lacs) {
this.totalAmount += lacs * 100000;
return this;
},
thousand(thousand) {
this.totalAmount += thousand * 1000;
return this;
},
value() {
return this.totalAmount;
},
};
}
console.log(
computeAmount()
.lacs(15)
.crore(5)
.crore(2)
.lacs(20)
.thousand(45)
.crore(7)
.value()
);
Please let me know if it is right approach or not
class calculate {
constructor(){
this.value=0;
}
thousand(amount){
this.value += amount *1000;
return this;
}
lacs(amount){
this.value +=amount *100000;
return this;
}
crore(amount){
this.value += amount *10000000;
return this;
}
final(){
return this.value;
}
}
const computeAmount = new calculate();
console.log(computeAmount.lacs(15).crore(5).crore(2).lacs(20).thousand(45).crore(7).final())
hi, this is my solution
function foo(){
let total=0
return {
lacs(num){
total=total+num*100000
return this
},
crore(num){
total=total+num*10000000
return this
},
thousand(num){
total=total+num*1000
return this
},
value(){
return total
}
}
}
console.log(foo().lacs(15).crore(5).crore(2).lacs(20).thousand(45).crore(7).value())
A great interview. I itself learned alot of things ❤🫡
Awesome ❤️
obj.helloWorld() ,,,,, we will get => hello world hello in this way also
❤
❤️