day 51 of asking: from where we can prepare these types of questions... question quality is superb
@himanshukhosla6 ай бұрын
Thank you very much for inviting me for this mock interview round chirag sir. Really loved the thrill of mock interview of Microsoft 😀
@engineerchirag6 ай бұрын
Always welcome! Thanks for coming ❤️
@riyasahamedm47476 ай бұрын
can you pls share the link where you refer at 28:40
@truth_6604 ай бұрын
@@engineerchirag kab tak scripted video daal kar logo ko bewkuf banyega
@anandagar2k6 ай бұрын
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; };
@Mr.Zeus116 ай бұрын
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
@deepakchandani52375 ай бұрын
I like this because it is raw & genuine (just like real interviews) (Nowadays, it's rare to find genuine conversations on YT 🙂) it is informative & learned a few things. Thanks to both of you for taking out time.
@engineerchirag4 ай бұрын
❤️🙏🙏
@VikashKumar-tg3ot5 ай бұрын
I love chirag sir feedback, sir is very humble , he insures no one loss his confidence.
@engineerchirag4 ай бұрын
🙂
@smrutisagarpattanaik15066 ай бұрын
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; } } }
@rishabhmehta62046 ай бұрын
but issue is you are passing parameter in actual question we are required not pass any args to computeAmount.
@smrutisagarpattanaik15066 ай бұрын
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.
@MessiLeo23126 ай бұрын
recursion is not optimized way to solve this problem it will consumed memory stack better go with factory function
@smrutisagarpattanaik15066 ай бұрын
@@MessiLeo2312 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.
@rishabhmehta62046 ай бұрын
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())
@sumitkumardey32686 ай бұрын
@chirag once again it's tricky , unique and knowledgeable questions from your side. Thanks , Please keep posting.
@engineerchirag6 ай бұрын
Thank you, I will. Keep watching, keep sharing ❤️
@SCRIPTSAG6 ай бұрын
First probkme based on currying second in this and third was related to getter setter great 👍
@madhanrock53906 ай бұрын
Good interview Again, Learning new things ✌ Thanks Chirag for investing your time in conducting mock interviews, Immensely helpful ❤
@engineerchirag6 ай бұрын
My pleasure 🙏❤️
@LearningExperienceAccess5 ай бұрын
At 11:00, you don't have to write another function, you can return this object. it will work as expected.
@sudhanshumarimganti46943 ай бұрын
Q1: const compute = function () { return new (function () { this.sum = 0; this.lacs = function (val) { this.sum = val * 100000; return this; }; this.value = function () { return this.sum; }; })(); }; console.log(compute().lacs(10).value());
@sanketjaiswal766 ай бұрын
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.
@engineerchirag6 ай бұрын
Awesome ❤️. Do share in your network as well. 🙏
@VenkatachalamMeyyappanАй бұрын
@engineerchirag wonderful video series. Just one suggestion. It would be better if you could also share us the solutions. It helps to validate our answers as well since finding the correct solutions for these kind of problems online is not easy.
@VenkatachalamMeyyappanАй бұрын
I guess the main issue on the last problem is the getter and setter share the same name as the attribute. So we cant basically return this.value rather have to change it to return the input value.
@FaizanPinjari6 ай бұрын
If people thinking what editor it is, it's technical assessment platform codility.
@RohantaTheDeer772 ай бұрын
Thank you for such type of content, I love it. I have learnt a lots of new things here. I just have one doubt, Isn't the approach to the first problem is exposing the "amount"? Instead we can wrap all the methods inside an object and return that object reference/object from the "computeAmount" function and each method will also return the reference of the same object except the "value" method which will return the amount only. So this will not expose the "amount" outside of "computeAmount" function directly. Also we don't need to create separate constructor function and create instance. Will it work ?
@srihariramakrishnan39356 ай бұрын
@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.
@4444-c4s6 ай бұрын
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.
@MessiLeo23126 ай бұрын
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)
@maheshshirate28346 ай бұрын
As student how is learning web dev, I learnt a lot, awesome interview ❤ Sir, Pls don't stop this seris
@engineerchirag6 ай бұрын
Thank you, I will. Keep learning, keep sharing 🚀
@sohrabkhan83676 ай бұрын
It was very good interview. Questions are very relatable and the approach to solving question is really awesome. Worth to watch the whole video.
@engineerchirag6 ай бұрын
Keep watching ❤️
@harshitagupta86416 ай бұрын
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🙏
@engineerchirag6 ай бұрын
Keep watching ❤️
@sourabhsingh44496 ай бұрын
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());
@mirage47314 ай бұрын
For First Question An easy approch - function computeAmount(){ let amount = 0; function crore(value){ amount = amount + (value* 1_00_00_000) return this } function lacs(value){ amount = amount + (value* 1_00_000) return this } function thousands(value){ amount = amount + (value* 1_000) return this } function hundreds(value){ amount = amount + (value* 100) return this } function value(){ return amount; } return {crore, lacs, thousands, hundreds, value} }
@chandrasekharmadavaram-nq9dq6 ай бұрын
one the great interview, learnt new things, please keep do more videos
@engineerchirag6 ай бұрын
Thank you! Will do! ❣️
@prakharomer77456 ай бұрын
It was totally awesome , super tricky questions.
@engineerchirag6 ай бұрын
Glad you liked it ❤️🙏
@hkdelhivlogsАй бұрын
Hi @engineerchirag which website he is using in internet for questions no 3 suggestions?
@ankushladani4966 ай бұрын
Thanks Chirag Sir for this awesome series...😊❤
@engineerchirag6 ай бұрын
Keep watching ❤️
@PicardoPlayer6 ай бұрын
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
@engineerchirag6 ай бұрын
Thanks for highlighting. It will rectified soon!
@dnyaneshwardongle2210Ай бұрын
Which site you are using for real time asking questions
@adityaaditya72863 ай бұрын
First question he got correct just return this. No need to create other function
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 }
@大盗江南4 ай бұрын
this is really good one, thank you!
@engineerchirag4 ай бұрын
You're very welcome!
@thechallengers64246 ай бұрын
Which real world project have used atleast one of these deep concepts of js???
@gunjanvyas6956 ай бұрын
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!
@AbdulMajeed-j6z6 ай бұрын
in input we already have `change` event listener so why we dispatch again 🤔
@manimk99225 ай бұрын
can you share that link where himanshu referred..?
@anyoneola4566 ай бұрын
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 KZbin. Keep It Up.👍👏
@engineerchirag6 ай бұрын
Every Saturday a new video of "Chakde Frontend Interview" will be live - Stay tuned. Keep growing, keep sharing 🚀
@pubggamers23252 ай бұрын
Hello sir i need this type logical question list can you probide a link
@4444-c4s6 ай бұрын
Please provide codes of all the Questions asked so that we can also try it before watching the solution.
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 } }
@nitinakuch49736 ай бұрын
Where I can practice such JavaScript questions?
@wickkjohn6 ай бұрын
Getting excited
@engineerchirag6 ай бұрын
Keep watching, keep sharing. Try to attempt questions by yourself 🚀
@wickkjohn6 ай бұрын
@@engineerchirag yes sir I just pause the video and try to solve the problem .
@amandubey44126 ай бұрын
excellent work
@engineerchirag6 ай бұрын
Thank you! Cheers! ❤️
@sameekshagupta95186 ай бұрын
Can you also do some React interview questions as well ?
@engineerchirag6 ай бұрын
Yes, upcoming interview is on ReactJs. Stay tuned 🚀
@namanupadhyay25896 ай бұрын
Can we get a separate video for 1 st questions solution
@engineerchirag6 ай бұрын
Noted. Will plan one.
@BulbDrama6 ай бұрын
Nice one
@engineerchirag6 ай бұрын
Thanks for watching
@abhijeet38446 ай бұрын
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
@yashsolanki0696 ай бұрын
Extremely helpful for all of us. Thanks chirag for this series. Could you please share, What is the code editor being used here?
@engineerchirag6 ай бұрын
Thanks Yash for feedback. DM me on LinkedIn for details 😊
@surajbhushanpandey28824 ай бұрын
const calculateAmount = function (initialSum = 0) { let sum = initialSum; let op = { value: () => sum }; op.__proto__.lacs = function (lacs = 0) { sum += 1_00_000 * lacs; return op; }; op.__proto__.crores = function (crores = 0) { sum += 100_00_000 * crores; return op; }; op.__proto__.thousand = function (thousand = 0) { sum += 1000 * thousand; return op; }; return op; };
@mkunboxing6 ай бұрын
awesome
@engineerchirag6 ай бұрын
❤️
@pravinkumarg80074 ай бұрын
state.value inside its own set method triggers the same set method again causing the infinite loops. Object.defineProperty(state, 'value', { set(newValue) { state._value = newValue; // Update internal _value directly input.value = state.value // Update input value }, get() { return state._value; } });
@karthiksundaram5446 ай бұрын
❤
@engineerchirag6 ай бұрын
❤️
@65muralikumarj6 ай бұрын
This Platform name???
@engineerchirag6 ай бұрын
DM me
@himanshumishra34256 ай бұрын
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 ?
@gagansuneja70296 ай бұрын
Does MS take all hiring rounds in a single day only?
@engineerchirag6 ай бұрын
In hiring drives, mostly yes.
@karthiksundaram5446 ай бұрын
Hi chirag what is latest version of javascript
@engineerchirag6 ай бұрын
ES14 - 2023
@karthiksundaram5446 ай бұрын
Hi chirag I guess best version of Java script is es6
@DevAditya6 ай бұрын
Which editor is it?
@engineerchirag6 ай бұрын
DM me on linkedin
@FaizanPinjari6 ай бұрын
Codility
@trialaccount22446 ай бұрын
From title I thought 3.5 years of experience 🙂
@engineerchirag6 ай бұрын
Yeah, interview level is 3.5+ experience only. Will get it rectified soon!
@niteshs728Ай бұрын
Solution for first problem function ComputeAmout(){ let totalAmount=0 function inner(){ // return totalAmount } inner.lacs=function(amount){ totalAmount+=amount*100000 return inner } inner.value= function(){ return totalAmount } inner.crore=function(amount){ totalAmount+=amount*10000000 return inner } inner.thousands=function(amount){ totalAmount+=amount*1000 return inner } return inner } console.log(ComputeAmout().lacs(15).crore(5).crore(2).lacs(15).thousands(45).crore(7).value())
@rishabhchopra8834 ай бұрын
What about this code function compute() { this.total = 0; function lakhs(val) { this.total += val * 1000; return this; } function crore(val) { this.total += val * 100000000; return this; } function value() { return this.total; } this.lakhs = lakhs.bind(this); this.crore = crore.bind(this); this.value = value.bind(this); return this; }
@mirage47314 ай бұрын
const element = document.createElement("input") const state = {value:"hi"} function model(state, input){ input.addEventListener("change",(e)=>{ state.value = e.target.value }) Object.defineProperty(state, "value",{ _temp:"", //using another variable to keep track of data stored in this variable set: function(x) { element.value = x; return this._temp = x; }, get: function() { return this._temp; }, }) } model(state, element) state.value = "dev" console.log("ELEMENT", element.value) // "dev" element.value = "engineer" element.dispatchEvent(new Event('change')) console.log(state.value) // 'engineeringchirag'
@mdsalman77076 ай бұрын
Does actual interview also go like this?
@shubhanshusahuu6 ай бұрын
Obviously not
@engineerchirag6 ай бұрын
Why so? Why did you feel like that?
@shubhanshusahuu6 ай бұрын
@@engineerchirag in actual interview, they don't support or give you hint like you gave
@sanketjaiswal766 ай бұрын
@@shubhanshusahuu it depends if they know u are on right track or not , if u showing them progress then they will help u sometime.
@engineerchirag6 ай бұрын
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 😄
@imkir4n6 ай бұрын
which is this online editor?
@engineerchirag6 ай бұрын
DM me
@imkir4n6 ай бұрын
@@engineerchirag how?
@engineerchirag6 ай бұрын
Linkedin
@FaizanPinjari6 ай бұрын
Codility
@imkir4n6 ай бұрын
@@FaizanPinjari thank you bro
@himanshuraj47664 ай бұрын
He looks like Badshah 😅
@engineerchirag4 ай бұрын
😛
@views-re2om3 ай бұрын
i am pissing my pants 😂
@engineerchirag3 ай бұрын
😅
@premmokashe48966 ай бұрын
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())
@aqibmalik63136 ай бұрын
did u run this
@shagunpreetsingh71056 ай бұрын
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
@nayansinghal236 ай бұрын
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());
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())