< JavaScript

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)

Be careful, JavaScript is deceptive, it might entice you with its C-like syntax, but underneath 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

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, and
  • Variables can be added 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

JavaScript is a classless language; 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

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.

References

  1. "ECMAScript Language Overview" (PDF). 2007-10-23. p. 4. http://www.ecmascript.org/es4/spec/overview.pdf. Retrieved 2009-05-03.
This article is issued from Wikibooks. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.