JavaScript/Relation to other languages

From Wikibooks, open books for an open world
Jump to navigation Jump to search
Previous: Introduction Index Next: First program

If you have programming experience or training with another language, learning JavaScript will be easier and more difficult at the same time. The easy part will be picking up the syntax; especially, if you're used to a language like Java or C++, much of the arithmetic and control logic is the same.

C-like languages, (C++ and Java)[edit | edit source]

Be careful, JavaScript is deceptive, it might entice you with its C-like syntax, but underneath it is an entirely different beast.

Despite some naming, syntactic, and standard library similarities, JavaScript and Java are otherwise unrelated and have very different semantics. The syntax of JavaScript is actually derived from C, while the semantics and design are influenced by the Self and Scheme programming languages.[1]

Dynamic Variables[edit | edit source]

Starting with the obvious, JavaScript is a loosely typed language. There are several implications to this:

  • Integers and floats are both represented by 64-bit floating point numbers (but crazily enough bitwise operations are still available, and sometimes faster),
  • You may change a variable's type at will.
  • Properties can be added, changed, and removed from an object at will.

The list goes on, and we are granted amazing powers to do wonderful and sometimes incredibly stupid things whilst programming, so it's very important to keep sober-minded when attempting to harness the power of the dynamic variables.

Classes[edit | edit source]

JavaScript is a classless language[note 1]; classes can be simulated, but if you remove the idea of classes from your head, the learning process will become easier.

Although JavaScript does not have classes, it does have objects, which then defines the language to be object oriented. For example, inheritance can be used by using prototypes, also functions themselves are objects because they have their own properties and methods.

Variable scope[edit | edit source]

There are no such things as public, private or protected variables: These can be simulated, but again it's best if you don't envisage such concepts, as they will only hinder you. Go to Closures for more information on scope.

Notes[edit | edit source]

  1. The class keyword is syntax sugar

References[edit | edit source]

  1. "ECMAScript Language Overview" (PDF). 2007-10-23. p. 4. Retrieved 2009-05-03. 
Previous: Introduction Index Next: First program