@description = "This lesson is a whirlwind tour of JavaScript features for people already fluent in another programming language. For a more measured and beginner-focused tutorial, start at the top of this Learn to Code with JavaScript track instead."

JavaScript for Programmers

"In JavaScript, there is a beautiful, elegant, highly expressive language that is buried under a steaming pile of good intentions and blunders." - Douglas Crockford, JavaScript: The Good Parts

Types

JavaScript has seven data types; six are called primitives:

Object (sometimes called "hash") comprises all other types, including

MDN: JS Data Structures

Objects

Properties

Arrays

Looping over the elements of an array

The normal way:

for (var i = 0; i<a.length; ++i) { ... }

In old JavaScript implementations, the above suffers from a performance problem, so you may see the following recommended instead:

    for (var i = 0, n = a.length; i<n; ++i) { ... }

Equality

2 == [2] // true

The above evaluates as if it were expanded thus:

2 === Number([2].valueOf().toString())

see also Why does 2 == [2] in JavaScript?

More equality madness

""           ==   "0"           // false
0            ==   ""            // true
0            ==   "0"           // true
false        ==   "false"       // false
false        ==   "0"           // true
false        ==   undefined     // false
false        ==   null          // false
null         ==   undefined     // true
" \t\r\n"    ==   0             // true

(from http://bonsaiden.github.com/JavaScript-Garden/#types.equality)

Moral: always use === (triple equal)

Resources

General JavaScript Resources

 Previous Lesson Next Lesson 

Outline

[menu]

/