Another high quality video! You're crushing it! A good followup would be some content around what's pure and what has side effects in the base language (e.g. Array.(map|reduce|etc.) vs Array.sort).
Hi, just a small clarification. At 4:11 you said: "Arguments of methods are actually references to their original value.". Thought this is true in case of passing non-primitive values such as an Array or a user-defined object as an argument to a function but when primitives like number, boolean, etc are passed to a function then they are passed by value and not reference. Great content btw. :) Subscribed!
Also, at 6:09 in the quiz example shown. If the company name were to be declared as an object with a key companyName & some other impure function might change this object's property then how can we be sure that getIntroduction will always give the same output given the same set of inputs. Because if the variable companyName changes then the function getIntroduction does not know about it and now for the same input variable name we might get a new returned string which is different from the previous cached version!
Video actually is very useful for beginners. But... Beginners don't think about these kind of things before they meet their own precious sufferings of side effects. So it will be better to show them those bugs on more "realistic" examples to send them into developer's catharsis))