JavaScript β the language that powers the web! But when it comes to its typing system, people often wonder: Is JavaScript statically typed or dynam...
For further actions, you may consider blocking this person and/or reporting abuse
For example hard to exactly typed a dynamical changed DOM query result, because the if the given tag type is different then the corresponding attributes and function list also different.
Also problematic set exact type to the generator functions because that may have a different return values on different yield.
Also will be problematic if user pass a complex maybe union types to a module which is according this generic-union give back another generic types related to user defined one. Like my jsdoc-duck module does.
What are you saying ?
You absolute right, I just talking about the using HTML comes many situation, where your type maybe a real complex question. Plus do not forget each function also have a type, where we can pass variable, we also also ability to pass a function.
Certainly! Let's clarify my previous:
Difficulty in Typing Dynamically Changed DOM Query Results:
<div>
will have different attributes and methods compared to an<input>
element.Problems with Setting Exact Types for Generator Functions:
yield
statements may produce varying types. This variability makes it difficult to define a type that accurately represents all possible outputs of the generator.Handling Complex Union Types with Generic Modules (e.g., jsdoc-duck:
Summary:
Possible Solutions:
too much ChatGPT in this comment. Come On , don't be too lazy to write your review that much.
But his initial comment wasn't ChatGPT; this one, where he tries to explain an answer to a question about his comment, is - his original point, and these are entirely legitimate points about why JavaScript is dynamically typed and what the advantages of that are. If English isn't your first language, I can understand how explaining complex concepts must be highly frustrating.
If you can't exactly type the element, then type it more loosely: all elements have a type in common...
Yes, agreed !!
We can say in that way as well.
If
any
wasn't frowned upon then that's true. What if you want to access those different properties, what if you want to use optional chaining to access elements and you don't want to write a lot of boilerplate casts and checks, because you don't need to. What if you want to add a Symbol property to everything you've scanning in a list before etc - this is all the power of a dynamic language.Love dynamic typing, once you know the rules you can build stuff so much faster without the type gymnastics.
Then when the next dev comes along and adds random stuff or changes the land everything breaks. Types prevent that, as it warns your ender you broke instead of going ooh let's see at run time π
Then it means it's just a bad dev.
May be he just starting out and it's normal because "Master is once a noob"
Also valid.
Yes, I feel the same!
Absolutely! @wfreeth
The way to visualize dynamically typed languages like JavaScript, Python, etc., you have to understand that the value is what retains the type instead of the variable name. When you understand this, you then can grasp the complexity of JavaScript type conversion -- which is something that most languages avoid and instead require the developer to use conversion functions/methods. JavaScript was made for automating forms and with that the need for it to do it's best to not fail leaf the team to create the conversation rules that dictate what type will be returned when two different types are used.
That is why every month or so another article is written about this behavior, as it is the most unique experience in programming and has been a source of many bugs for those who don't understand how it determines a type.
Exactly! In dynamically typed languages, the type is tied to the value, not the variable, making type coercion a key (and sometimes tricky) feature.
The types in languages are effect of reserving memory in RAM. Languages like Javascript have dynamic allocation and I personally believe that that's how it should be as we have better RAM management. Of course the main kernel RAM management should be efficient. I personally prefer Javascript dynamically. JavaScript also offers flexibility of no compilation everytime. One can see immediate effect of the code change rather than everytime compilers has to work consuming more CPU and RAM anyways.
Those who prefer statically types can use Typescript. I don't prefer typescript. Langauge must be flexible and programmer must be better in programming.
Of course another issue in JavaScript is the variable naming and the case sensitive that causes issue but it's a separate issue. That issue takes whole lot of time of programmers if done mistakes in coding.
well, I agree!
For me working in a large team types or unit tests are essential to give you the feedback of the initially intended outcome of a function. It's why we use typescript on the frontend and enable strict types in PHP on the bankend, saves so many headaches
Yes !! typescript is life Savior !!
wow amazing .
thanks @aniruddhadak !!