Javascript as a language is very out of sync with other commonly used languages.
How so? Moving back and forth between Typescript and C# / Java is pretty natural imho, as long as you understand the compiled vs interpreted differences.
The vary concept of truthy and falsy makes it very out of step. The triple equals only partly negates that foot gun. Const and let also only partly negate the footgun of hoisting, lexical scope, and the non-obvious impacts of currying. Prototype inheritance would be truly bizarre to people used to more standard inheritance style and many people don’t know that javascript’s classes are syntax sugar over that system and it leads to foot guns. Many people don’t understand destructuring, because they don’t understand that javascript objects are all dictionaries in a trenchcoat. Honestly there’s a lot of cargo cult behavior in javascript that comes because the language is bizarre given what most people would have experienced.
How so? Moving back and forth between Typescript and C# / Java is pretty natural imho, as long as you understand the compiled vs interpreted differences.
The vary concept of truthy and falsy makes it very out of step. The triple equals only partly negates that foot gun. Const and let also only partly negate the footgun of hoisting, lexical scope, and the non-obvious impacts of currying. Prototype inheritance would be truly bizarre to people used to more standard inheritance style and many people don’t know that javascript’s classes are syntax sugar over that system and it leads to foot guns. Many people don’t understand destructuring, because they don’t understand that javascript objects are all dictionaries in a trenchcoat. Honestly there’s a lot of cargo cult behavior in javascript that comes because the language is bizarre given what most people would have experienced.