JavaScript Tips

JavaScript is one of the most used languages on client-side, most of the websites you know contains some JavaScript code even if it’s not so important. Nowadays, this use exploded, especially with the introduction of MV* frameworks on client-side such as BackboneJS or AngularJS, etc. In this post I’ll speak about some JavaScript tips that I learned in my carreer. I’m not a JavaScript specialist, so your comments are welcome.

1. Global variables

Don’t forget to use the var keyword when declaring variables, because if you don’t do, this will be interpreted as a global variable and this is not a good habit because it will make the debugging more difficult.

2. Testing equality

Try always to use === instead of == when testing equality, because === operator evaluates both type and the value

if(1 === '1') //Returns false
if(1 == '1') //Returns true

if(0 === '') //Returns false
if(0 == '') //Returns true

Note that this is the same advice for inequality operators != and !==

3. Semicolons

Always include all semicolons, why ? Because when you didn’t do it, the browser will do it for you where he thinks that is the best and necessary place. So imagine what could be the results.

4. Blocks

Like in C programming language, It’s preferred to use the K&R style of formatting for block quotes. This format starts the opening curly brace on the same line as the preceding line of code. Below, an example:

if(debug === true) {
   console.log('DEBUG mode is enabled');
} else {
   console.log('DEBUG mode is disabled');
}

Furthmore, you should always use explicit blocks. So it’s not appreciable to write the below code

if (i < 10)
    do_something(i);

Instead, write:

if (i < 10) {
    do_something(i);
}

5. Variables declaration

One of the most strange notions in JavaScript that encounters developers coming from C-family languages is the fact that variables is hoisted: variables are available before declaration. It’s strange ! This is due to the interpreter’s strategy. The interpreter starts with scanning code and retrieving all declarations, it executes code line by line. This is why the below code does not throws any error:

console.log(my_variable);
//Outputs: undefined

var my_variable = "Hello World!";
console.log(my_variable);
//Outputs: Hello World!

So, the interpreter scans the code, and collect all declared variables and put them in the concerned scope, then it executes the code. In our case my_variable is declared but it’s not yet initialized until the 4th line. This why the output was undefined for the first time.

Advertisements

Web 3.0

web3.0Web 3.0, aka intelligent web, adds a new dimension to Internet use: interaction with the objects that surround us, and that of “intelligent” data processing software and machines more efficient. Web 3.0 is the “internet users” because the border between the real and the virtual becomes increasingly reduced.

A Web 3.0 application is characterized by:

  • Mobility: it must be independent of any media type (screen, printer output, etc.)
  • Universality: it must be independent of any operating system and any hardware / software
  • Accessibility: strictly in accordance with the W3C, which allows other software to make accessible using Microformat and open to various databases.