Skip to content

Latest commit

 

History

History
167 lines (114 loc) · 4.51 KB

README.md

File metadata and controls

167 lines (114 loc) · 4.51 KB

Introducción a Javascript

JavaScript es

  • lenguaje de programación dinámico

  • débilmente Tipado

  • basado en prototipos

  • presente en cualquier explorador web

  • con funciones de primera clase (first-class functions)

  • multi-paradigma (imperativo, orientado a objetos y funcional)

  • sintaxis similar a C y Java

  • ¡pero no tiene NADA QUE VER con Java!

Historia de JavaScript

  • creado en 1995 por Brenda Eich

  • para ser incluido como lenguaje de scripting en el navegador Netscape

  • por razones comerciales se lo quiso emparentar con Java (¡pero no tiene NADA que ver!)

  • desde 1997 es un estándar internacional bajo el nombre de ECMAScript.

  • en 2005, con el surgimiento de AJAX JavaScript recibe nuevo impulso

  • se comienza a estudiar el lenguaje y se desarrollan librerías y frameworks

  • en 2009 comienza el desarrollo de node.js, una plataforma para crear servicios de red ejecutando JavaScript del lado del servidor.

A mediados de 2013 JavaScript encabezaba la lista de lenguajes más usados en github, con más de 200.000 repositorios creados tan sólo en 2013 (ver números), mientras que en enero de 2014 redmonk lo situaba al tope de la lista, seguido muy de cerca por Java.

Más información en wikipedia

Características de JavaScript

  • Imperativo y estructurado

Soporta gran parte de la programación estructurada al estilo C (sentencias if, for, switch).

  • Tipado dinámico

Las variables pueden cambiar de tipo.

  • Basado en objetos

Casi todo son objetos en JavaScript. Los objetos en JavaScript son arrays asociativos con soporte de prototipos.

Ejemplo de un objeto como un array asociativo

var miObjeto = {
  nombre: 'objeto',
  edad: 22,
  deciHola: function() {
    alert('hola');
  },
  otroObjeto: {
    nombre: 'anidado',
    edad: 10
  }
};

miObjeto.nombre      // retorna 'objeto'
miObjeto['nombre']   // también retorna 'objeto', sintaxis alternativa
  • Funciones de primera clase

Las funciones son un tipo más de datos, poseen propiedades y métodos. Cada función es creada como una clausura (clousure), reteniendo el valor de su contexto de ejecución.

  • Basado en prototipos

JavaScript usa prototipos en vez de clases para soportar herencia y reutilizar funcionalidad.

  • Funciones variádicas

Las funciones pueden recibir una cantidad no especificada de parámetros.

  • Funciones como métodos

Los métodos son funciones almacenadas como propiedades de un objeto.

var myFunction = function() { return 'hello world'; }   // esto es una función

var myObject = {
  helloWorld: myFunction
};

// myObject.helloWord es un método

myObject.helloWorld();   // retorna 'hello world'
  • Arrays y definiciones de objectos literales

Los arrays y objetos pueden ser creados con una sintaxis abreviada

var a1 = new Array(1,2,3);

var a1 = [1, 2, 3];           // definido de manera literal

var o1 = new Object();
o1.nombre = 'Juan'

var o1 = { nombre: 'Juan'}   // definido de manera literal

Ejecutando JavaScript en el browser

Hay tres maneras de ejecutar JavaScript desde una página web.

Desde un archivo externo.

Simplemente incluimos un tag <script> con un atributo src apuntando al archivo que queremos incluir.

<html>
  <head>
    <title></title>
  </head>
  <body>
    <script type='text/javascript' src='js/helper.js'></script>
  </body>
</html>

Desde un tag <script>.

Incluimos el código JavaScript entre tags <script>.

<html>
  <head>
    <title></title>
  </head>
  <body>
    <script type='text/javascript'>
    function fromScriptTag {
      console.log('running from script tag!');
    }
    </script>
  </body>
</html>

Embebido en el html

Incluimos el código JavaScript en un atriuto de un elemento html. Esta forma no es recomendada ya que nos queda mezclado el código JavaScript con nuestro html. Más adelante veremos que hay mejores formas de hacer esto.

<html>
  <head>
    <title></title>
  </head>
  <body>
    <a href='#' onclick='alert("hola desde html!");'>en el html (MUY FEO!!!)</a>
  </body>
</html>

Ver este ejemplo.

Recursos útiles

http://radar.oreilly.com/2011/06/time-to-learn-javascript.html

JavaScript, the good parts