SlideShare uma empresa Scribd logo
1 de 30
Baixar para ler offline
Fundamentos de
  Javascript
   Abraham Estrada
Historia
Brendan Eich         3WC - DOM

Netscape             1997 ECMA

Mocha > LiveScript   ECMAScript

1995                 ISO

Microsoft JScript

1996
Sintaxis Básica
var foo = ‘hello world’;
var foo =           ‘hello world’;
2 * 3 + 5 // 11
2 * (3 + 5) // 16

var foo = function() {
    console.log(‘hello);
};
Operadores Básicos
var foo = ‘hello’;
var bar = ‘world’;
console.log(foo + ‘ ‘ + bar);

2 * 3;
2 / 3;

var i = 1;
var j = ++i;
var k = i++;
Operaciones con Números
y Cadenas de Caracteres
var foo = 1;
var bar = ‘2’;
console.log(foo + bar);

console.log(foo + Number(bar));

console.log(foo + +bar);
Operadores Lógicos
var foo = 1;
var bar = 0;
var baz = 2;

foo || bar;    // devuelve 1, el cual es verdadero (true)
bar || foo;    // devuelve 1, el cual es verdadero (true)

foo && bar;    // devuelve 0, el cual es falso (false)
foo && baz;    // devuelve 2, el cual es verdadero (true)
baz && foo;    // devuelve 1, el cual es verdadero (true)
Operadores de Comparación
var   foo   =   1;
var   bar   =   0;
var   baz   =   '1';
var   bim   =   2;

foo == bar;            // devuelve falso (false)
foo != bar;            // devuelve verdadero (true)
foo == baz;            // devuelve verdadero (true)

foo === baz;                      // devuelve falso (false)
foo !== baz;                      // devuelve verdadero (true)
foo === parseInt(baz);            // devuelve verdadero (true)

foo > bim;             // devuelve falso (false)
bim > baz;             // devuelve verdadero (true)
foo <= baz;            // devuelve verdadero (true)
Código Condicional
var foo = true;
var bar = false;

if (bar) {
    // este código nunca se ejecutará
    console.log('hello!');
}

if (bar) {
    // este código no se ejecutará
} else {
    if (foo) {
         // este código se ejecutará
    } else {
        // este código se ejecutará si foo y bar son falsos (false)
    }
}
Elementos Verdaderos y Falsos
'0';
'any   string'; // cualquier cadena
[];    // un arreglo vacío
{};    // un objeto vacío
1;     // cualquier número distinto a cero

0;
''; // una cadena vacía
NaN; // la variable JavaScript "not-a-number"
null; // un valor nulo
undefined; // puede ser redefinido
Variables Condicionales
Utilizando el Operador Ternario

     var foo = bar ? 1 : 0;
Declaración Switch
switch (foo) {
    case 'bar':
        alert('el valor es bar');
        break;

    case 'baz':
        alert('el valor es baz');
        break;

    default:
        alert('de forma predeterminada se ejecutará este código');
        break;
}
var stuffToDo = {
    'bar' : function() {
        alert('el valor es bar');
    },

     'baz' : function() {
         alert('el valor es baz');
     },

     'default' : function() {
         alert('de forma predeterminada se ejecutará este código');
     }
};

if (stuffToDo[foo]) {
    stuffToDo[foo]();
} else {
    stuffToDo['default']();
}
Bucle: For
// muestra en la consola 'intento 0',
// 'intento 1', ..., 'intento 4'
for (var i=0; i<5; i++) {
    console.log('intento ' + i);
}
Bucle: While
var i = 0;
while (i < 100) {
    // Este bloque de código
    // se ejecutará 100 veces
    console.log('Actualmente en ' + i);

    i++; // incrementa la variable i
}
Bucle: Do-While

do {
    // Incluso cuando la
    // condición sea falsa
    // el cuerpo del bucle se
    // ejecutará al menos una vez.
    alert('Hello');
} while(false);
Break - Continue
for (var i = 0; i < 10; i++) {
    if (something) {
        break;
    }
}
for (var i = 0; i < 10; i++) {
    if (something) {
        continue;
    }
    // La siguiente declaración será ejecutada
    // si la condición 'something' no se cumple
    console.log('Hello');
}
Palabras Reservadas
abstract      double           in        super
boolean         else    instanceof      switch
  break        enum           int    synchronized
   byte       export     interface        this
   case      extends         long        throw
  catch        final       native       throws
   char      finally         new       transient
  class        float      package         try
  const         for       private       typeof
continue    function     protected        var
debugger       goto         public        void
 default         if        return       volatile
  delete   implements       short        while
    do       import        static         with
Arreglos
var myArray = [ 'hello', 'world' ];

var myArray = [ 'hello', 'world', 'foo'];

console.log(myArray[2]);
console.log(myArray.length);

myArray[1] = ‘changed’;
myArray.push(‘new’);
Arreglos

var myArray = [ 'h', 'e', 'l', 'l', 'o' ];
var myString = myArray.join('');   // 'hello'
var mySplit = myString.split('');
// [ 'h', 'e', 'l', 'l', 'o' ]
Objetos
var myObject = {
    sayHello : function() {
        console.log('hello');
    },
    myName : 'Rebecca'
};

myObject.sayHello();
console.log(myObject.myName);
Funciones

function foo() { /* hacer algo */ }
var foo = function() { /* hacer algo */ }




         http://kangax.github.com/nfe/
var greet = function(person, greeting) {
    var text = greeting + ', ' + person;
    console.log(text);
};

greet('Rebecca', 'Hello');
// muestra en la consola 'Hello, Rebecca'
var greet = function(person, greeting) {
    var text = greeting + ', ' + person;
    return text;
};

console.log(greet('Rebecca','hello'));
// la función devuelve 'Hello, Rebecca',
la cual se muestra en la consola
var greet = function(person, greeting) {
    var text = greeting + ', ' + person;
    return function() { console.log(text); };
};

var greeting = greet('Rebecca', 'Hello');
greeting();
// se muestra en la consola 'Hello, Rebecca'
Funciones Anónimas
  Autoejecutables
(function(){
    var foo = 'Hello world';
})();

console.log(foo);
// indefinido (undefined)
var myFunction = function() {
    console.log('hello');
};
var myObject = {
    foo : 'bar'
};
var myArray = [ 'a', 'b', 'c' ];
var myString = 'hello';
var myNumber = 3;
typeof   myFunction;   //   devuelve   'function'
typeof   myObject;     //   devuelve   'object'
typeof   myArray;      //   devuelve   'object'
typeof   myString;     //   devuelve   'string'
typeof   myNumber;     //   devuelve   'number'

typeof null;           // devuelve 'object'



if (myArray.push && myArray.slice && myArray.join) {
    // probablemente sea un arreglo
    // (este estilo es llamado, en inglés, "duck typing")
}

if (Object.prototype.toString.call(myArray) === '[object
Array]') {
    // definitivamente es un arreglo;
    // esta es considerada la forma más robusta
    // de determinar si un valor es un arreglo.
}
Alcance (scope)
var foo = 'hello';

var sayHello = function() {
    console.log(foo);
};

sayHello(); // muestra en la consola 'hello'
console.log(foo); // también muestra en la
consola 'hello'
Alcance (scope)
var sayHello = function() {
    var foo = 'hello';
    console.log(foo);
};

sayHello(); // muestra en la consola 'hello'
console.log(foo); // no muestra nada en
la consola
Alcance (scope)
var foo = 'world';

var sayHello = function() {
    var foo = 'hello';
    console.log(foo);
};

sayHello(); // muestra en la consola 'hello'
console.log(foo); // muestra en la
consola 'world'

Mais conteúdo relacionado

Mais procurados

INVESTIGACION DE ELEMENTOS Y CODIGOS DE C++
INVESTIGACION DE ELEMENTOS Y CODIGOS DE C++INVESTIGACION DE ELEMENTOS Y CODIGOS DE C++
INVESTIGACION DE ELEMENTOS Y CODIGOS DE C++Alfredo Rivera
 
6... producciones por derecha e izquierda
6... producciones por derecha e izquierda6... producciones por derecha e izquierda
6... producciones por derecha e izquierdaJacqui Venegas
 
Colas 2do ejercicio
Colas 2do ejercicioColas 2do ejercicio
Colas 2do ejercicioCerdorock
 
Ejercicios resuelto de shell script
Ejercicios resuelto  de shell scriptEjercicios resuelto  de shell script
Ejercicios resuelto de shell scriptYarlet Urda
 
Introducción a la programación en Bash
Introducción a la programación en BashIntroducción a la programación en Bash
Introducción a la programación en BashMauro Parra-Miranda
 
Shell script
Shell scriptShell script
Shell scriptuniminuto
 
Curso Javascript profesionales
Curso Javascript profesionalesCurso Javascript profesionales
Curso Javascript profesionalesRedradix
 
Historia de los buffer overflows por Juan Sacco
Historia de los buffer overflows por Juan SaccoHistoria de los buffer overflows por Juan Sacco
Historia de los buffer overflows por Juan SaccoJuan Sacco
 
Groovy no es java sin punto y coma v3
Groovy no es java sin punto y coma v3Groovy no es java sin punto y coma v3
Groovy no es java sin punto y coma v3Pablo Alba
 
Aprendiendo php 2
Aprendiendo php 2Aprendiendo php 2
Aprendiendo php 2Erick Trejo
 

Mais procurados (19)

Scripts
ScriptsScripts
Scripts
 
INVESTIGACION DE ELEMENTOS Y CODIGOS DE C++
INVESTIGACION DE ELEMENTOS Y CODIGOS DE C++INVESTIGACION DE ELEMENTOS Y CODIGOS DE C++
INVESTIGACION DE ELEMENTOS Y CODIGOS DE C++
 
41 Php. Bucles For
41 Php. Bucles For41 Php. Bucles For
41 Php. Bucles For
 
Diego alexis 8
Diego alexis 8Diego alexis 8
Diego alexis 8
 
6... producciones por derecha e izquierda
6... producciones por derecha e izquierda6... producciones por derecha e izquierda
6... producciones por derecha e izquierda
 
Colas 2do ejercicio
Colas 2do ejercicioColas 2do ejercicio
Colas 2do ejercicio
 
Semana 4 Javascript Estructura de Datos y ciclo FOR
Semana 4   Javascript Estructura de Datos y ciclo FORSemana 4   Javascript Estructura de Datos y ciclo FOR
Semana 4 Javascript Estructura de Datos y ciclo FOR
 
Ejercicios resuelto de shell script
Ejercicios resuelto  de shell scriptEjercicios resuelto  de shell script
Ejercicios resuelto de shell script
 
Introducción a la programación en Bash
Introducción a la programación en BashIntroducción a la programación en Bash
Introducción a la programación en Bash
 
Shell script
Shell scriptShell script
Shell script
 
Curso Javascript profesionales
Curso Javascript profesionalesCurso Javascript profesionales
Curso Javascript profesionales
 
Historia de los buffer overflows por Juan Sacco
Historia de los buffer overflows por Juan SaccoHistoria de los buffer overflows por Juan Sacco
Historia de los buffer overflows por Juan Sacco
 
Groovy no es java sin punto y coma v3
Groovy no es java sin punto y coma v3Groovy no es java sin punto y coma v3
Groovy no es java sin punto y coma v3
 
01 el lenguaje Python
01 el lenguaje Python01 el lenguaje Python
01 el lenguaje Python
 
Pila
PilaPila
Pila
 
100 1
100 1 100 1
100 1
 
Printf23
Printf23Printf23
Printf23
 
Taller I Coreis Python 10112009
Taller I Coreis Python 10112009Taller I Coreis Python 10112009
Taller I Coreis Python 10112009
 
Aprendiendo php 2
Aprendiendo php 2Aprendiendo php 2
Aprendiendo php 2
 

Semelhante a Introducción a Javascript

Deteccion de Ciclos en c
Deteccion de Ciclos en cDeteccion de Ciclos en c
Deteccion de Ciclos en cAbraham
 
Reactividad en Angular, React y VueJS
Reactividad en Angular, React y VueJSReactividad en Angular, React y VueJS
Reactividad en Angular, React y VueJSJavier Abadía
 
Hack (Lenguaje de Programacion)
Hack (Lenguaje de Programacion)Hack (Lenguaje de Programacion)
Hack (Lenguaje de Programacion)Elwin Huaman
 
Exposicion de php
Exposicion de phpExposicion de php
Exposicion de phpangie barre
 
Introducción a la Progamación en Javascript. Classe 2
Introducción a la Progamación en Javascript. Classe 2Introducción a la Progamación en Javascript. Classe 2
Introducción a la Progamación en Javascript. Classe 2xjordi
 
Programa de arbol
Programa  de arbol Programa  de arbol
Programa de arbol zxxsasukexxz
 
JavaScript no es Vietnam
JavaScript no es VietnamJavaScript no es Vietnam
JavaScript no es VietnamAlex Casquete
 
ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++die_dex
 
1.2. kotlin (1)
1.2. kotlin (1)1.2. kotlin (1)
1.2. kotlin (1)xavazque2
 

Semelhante a Introducción a Javascript (20)

Declaraciones
DeclaracionesDeclaraciones
Declaraciones
 
Declaraciones
DeclaracionesDeclaraciones
Declaraciones
 
Semana 4 Javascript funciones y Metodos
Semana 4   Javascript funciones y MetodosSemana 4   Javascript funciones y Metodos
Semana 4 Javascript funciones y Metodos
 
Lab
LabLab
Lab
 
Codigos de programas
Codigos de programasCodigos de programas
Codigos de programas
 
Codigos de programas
Codigos de programasCodigos de programas
Codigos de programas
 
Codigos de programas
Codigos de programasCodigos de programas
Codigos de programas
 
Deteccion de Ciclos en c
Deteccion de Ciclos en cDeteccion de Ciclos en c
Deteccion de Ciclos en c
 
ECMAScript 6
ECMAScript 6ECMAScript 6
ECMAScript 6
 
Especialista Web J9 Php
Especialista Web J9  PhpEspecialista Web J9  Php
Especialista Web J9 Php
 
Reactividad en Angular, React y VueJS
Reactividad en Angular, React y VueJSReactividad en Angular, React y VueJS
Reactividad en Angular, React y VueJS
 
Hack (Lenguaje de Programacion)
Hack (Lenguaje de Programacion)Hack (Lenguaje de Programacion)
Hack (Lenguaje de Programacion)
 
Exposicion de php
Exposicion de phpExposicion de php
Exposicion de php
 
Introducción a la Progamación en Javascript. Classe 2
Introducción a la Progamación en Javascript. Classe 2Introducción a la Progamación en Javascript. Classe 2
Introducción a la Progamación en Javascript. Classe 2
 
Programa de arbol
Programa  de arbol Programa  de arbol
Programa de arbol
 
JavaScript no es Vietnam
JavaScript no es VietnamJavaScript no es Vietnam
JavaScript no es Vietnam
 
Practicas de programacion 11 20
Practicas de programacion 11 20Practicas de programacion 11 20
Practicas de programacion 11 20
 
ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++
 
diapo1.pdf
diapo1.pdfdiapo1.pdf
diapo1.pdf
 
1.2. kotlin (1)
1.2. kotlin (1)1.2. kotlin (1)
1.2. kotlin (1)
 

Último

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 

Último (10)

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 

Introducción a Javascript

  • 1. Fundamentos de Javascript Abraham Estrada
  • 2. Historia Brendan Eich 3WC - DOM Netscape 1997 ECMA Mocha > LiveScript ECMAScript 1995 ISO Microsoft JScript 1996
  • 3. Sintaxis Básica var foo = ‘hello world’; var foo = ‘hello world’; 2 * 3 + 5 // 11 2 * (3 + 5) // 16 var foo = function() { console.log(‘hello); };
  • 4. Operadores Básicos var foo = ‘hello’; var bar = ‘world’; console.log(foo + ‘ ‘ + bar); 2 * 3; 2 / 3; var i = 1; var j = ++i; var k = i++;
  • 5. Operaciones con Números y Cadenas de Caracteres var foo = 1; var bar = ‘2’; console.log(foo + bar); console.log(foo + Number(bar)); console.log(foo + +bar);
  • 6. Operadores Lógicos var foo = 1; var bar = 0; var baz = 2; foo || bar; // devuelve 1, el cual es verdadero (true) bar || foo; // devuelve 1, el cual es verdadero (true) foo && bar; // devuelve 0, el cual es falso (false) foo && baz; // devuelve 2, el cual es verdadero (true) baz && foo; // devuelve 1, el cual es verdadero (true)
  • 7. Operadores de Comparación var foo = 1; var bar = 0; var baz = '1'; var bim = 2; foo == bar; // devuelve falso (false) foo != bar; // devuelve verdadero (true) foo == baz; // devuelve verdadero (true) foo === baz; // devuelve falso (false) foo !== baz; // devuelve verdadero (true) foo === parseInt(baz); // devuelve verdadero (true) foo > bim; // devuelve falso (false) bim > baz; // devuelve verdadero (true) foo <= baz; // devuelve verdadero (true)
  • 8. Código Condicional var foo = true; var bar = false; if (bar) { // este código nunca se ejecutará console.log('hello!'); } if (bar) { // este código no se ejecutará } else { if (foo) { // este código se ejecutará } else { // este código se ejecutará si foo y bar son falsos (false) } }
  • 9. Elementos Verdaderos y Falsos '0'; 'any string'; // cualquier cadena []; // un arreglo vacío {}; // un objeto vacío 1; // cualquier número distinto a cero 0; ''; // una cadena vacía NaN; // la variable JavaScript "not-a-number" null; // un valor nulo undefined; // puede ser redefinido
  • 10. Variables Condicionales Utilizando el Operador Ternario var foo = bar ? 1 : 0;
  • 11. Declaración Switch switch (foo) { case 'bar': alert('el valor es bar'); break; case 'baz': alert('el valor es baz'); break; default: alert('de forma predeterminada se ejecutará este código'); break; }
  • 12. var stuffToDo = { 'bar' : function() { alert('el valor es bar'); }, 'baz' : function() { alert('el valor es baz'); }, 'default' : function() { alert('de forma predeterminada se ejecutará este código'); } }; if (stuffToDo[foo]) { stuffToDo[foo](); } else { stuffToDo['default'](); }
  • 13. Bucle: For // muestra en la consola 'intento 0', // 'intento 1', ..., 'intento 4' for (var i=0; i<5; i++) { console.log('intento ' + i); }
  • 14. Bucle: While var i = 0; while (i < 100) { // Este bloque de código // se ejecutará 100 veces console.log('Actualmente en ' + i); i++; // incrementa la variable i }
  • 15. Bucle: Do-While do { // Incluso cuando la // condición sea falsa // el cuerpo del bucle se // ejecutará al menos una vez. alert('Hello'); } while(false);
  • 16. Break - Continue for (var i = 0; i < 10; i++) { if (something) { break; } } for (var i = 0; i < 10; i++) { if (something) { continue; } // La siguiente declaración será ejecutada // si la condición 'something' no se cumple console.log('Hello'); }
  • 17. Palabras Reservadas abstract double in super boolean else instanceof switch break enum int synchronized byte export interface this case extends long throw catch final native throws char finally new transient class float package try const for private typeof continue function protected var debugger goto public void default if return volatile delete implements short while do import static with
  • 18. Arreglos var myArray = [ 'hello', 'world' ]; var myArray = [ 'hello', 'world', 'foo']; console.log(myArray[2]); console.log(myArray.length); myArray[1] = ‘changed’; myArray.push(‘new’);
  • 19. Arreglos var myArray = [ 'h', 'e', 'l', 'l', 'o' ]; var myString = myArray.join(''); // 'hello' var mySplit = myString.split(''); // [ 'h', 'e', 'l', 'l', 'o' ]
  • 20. Objetos var myObject = { sayHello : function() { console.log('hello'); }, myName : 'Rebecca' }; myObject.sayHello(); console.log(myObject.myName);
  • 21. Funciones function foo() { /* hacer algo */ } var foo = function() { /* hacer algo */ } http://kangax.github.com/nfe/
  • 22. var greet = function(person, greeting) { var text = greeting + ', ' + person; console.log(text); }; greet('Rebecca', 'Hello'); // muestra en la consola 'Hello, Rebecca'
  • 23. var greet = function(person, greeting) { var text = greeting + ', ' + person; return text; }; console.log(greet('Rebecca','hello')); // la función devuelve 'Hello, Rebecca', la cual se muestra en la consola
  • 24. var greet = function(person, greeting) { var text = greeting + ', ' + person; return function() { console.log(text); }; }; var greeting = greet('Rebecca', 'Hello'); greeting(); // se muestra en la consola 'Hello, Rebecca'
  • 25. Funciones Anónimas Autoejecutables (function(){ var foo = 'Hello world'; })(); console.log(foo); // indefinido (undefined)
  • 26. var myFunction = function() { console.log('hello'); }; var myObject = { foo : 'bar' }; var myArray = [ 'a', 'b', 'c' ]; var myString = 'hello'; var myNumber = 3;
  • 27. typeof myFunction; // devuelve 'function' typeof myObject; // devuelve 'object' typeof myArray; // devuelve 'object' typeof myString; // devuelve 'string' typeof myNumber; // devuelve 'number' typeof null; // devuelve 'object' if (myArray.push && myArray.slice && myArray.join) { // probablemente sea un arreglo // (este estilo es llamado, en inglés, "duck typing") } if (Object.prototype.toString.call(myArray) === '[object Array]') { // definitivamente es un arreglo; // esta es considerada la forma más robusta // de determinar si un valor es un arreglo. }
  • 28. Alcance (scope) var foo = 'hello'; var sayHello = function() { console.log(foo); }; sayHello(); // muestra en la consola 'hello' console.log(foo); // también muestra en la consola 'hello'
  • 29. Alcance (scope) var sayHello = function() { var foo = 'hello'; console.log(foo); }; sayHello(); // muestra en la consola 'hello' console.log(foo); // no muestra nada en la consola
  • 30. Alcance (scope) var foo = 'world'; var sayHello = function() { var foo = 'hello'; console.log(foo); }; sayHello(); // muestra en la consola 'hello' console.log(foo); // muestra en la consola 'world'