Otras preguntas no tan comunes

(o que no merecen su propia página)

Inconveniencia de los timers

Hay un concepto importante que se necesita tomar en cuenta:

El delay de los timers no está garantizado

Como JavaScript (en un browser) es ejecutado en un sólo thread, los eventos asíncronos se ejecutan cuando hay una apertura en la ejecución.

First Class functions

Se dice que un lenguaje de programación soporta funciones de primera clase cuando trata a sus funciones como objetos de primera clase.

En resumen:

Strict Mode

Strict Mode te permite poner un programa o función en un contexto de operación "estricto".

El contexto estricto previene algunas acciones y arroja más excepciones. (provee al usuario más información)

Strict mode nos ayuda a:

Para habilitar Strict Mode en todo el código:
"use strict"
O para habilitarlo en una función:
//código no estricto
function estricta(){
	"use strict";
	//código estricto
}
//código no estricto
		
Muchas librerías utilizan la siguiente técnica para hacer que su código corra en modo estricto
//código no estricto
(function(){
	"use strict";
	//resto de la librería (código estricto)
})();
//código no estricto
		
¿Qué cambia cuando estamos en Strict Mode?

Mejor vámonos al código...

Artículo muy recomendado

This

This es una palabra reservada que sirve para identificar el contexto de ejecución.

Dependiendo del contexto, this puede apuntar a diferentes lugares:

JavaScript no obtruso

Se acaba de explicar en el último punto del tema anterior.

True o False?

En JavaScript, todo tiene un valor booleano, generalmente conocido como truthly o falsy.

Los siguientes siempre evaluan a false: Todos los demás siempre se evaluan a true

¿Qué pasa si una función no tiene return?

La función regresa undefined

A menos que sea utilizada como constructor (llamándola con new). En éste caso se regresa el objeto construido por la función.
Código