it supports programing in many different paradigm such as: functional programing, object-oriented programming, etc.
Back
weakly typed language
Front
it will easily allow you to coerce one type into other.
ex) if you add number 1 and "1" instead of throwing error, it may return "11" or 2. it will try to turn one type into the other in order to accomplish whatever operation you are trying to do.
Back
prototype-based
Front
it is its method of inheritance, every thing will be inherited from an Object's prototype as oppose to having a class which is more like a blueprint that tells the compiler how it should create an instance of a class.
Back
promise
Front
an Object that represents the eventual completion (or failure) of an asynchronous operation.
Back
JavaScript
Front
is a high-level, dynamic, untyped, and interpreted programming language.
Back
never blocking
Front
it will never holding up that one thread, it just moves on
Back
single-threaded
Front
it can be only doing one thing at a time.
Back
callback
Front
a function passed into another function as an argument which is then invoked inside the second function to complete some kind of routine or action.
Back
concurrency
Front
JS is a single treaded language, so it can only do one thing at a time, function has to jump back forth to do two things at same time.
Back
dynamic
Front
it can execute many common behaviors at runtime as opposed happened to be compiled.
Back
asynchronicity
Front
callbacks, promises, setTimeouts, event handlers, etc.