- Barajar
ActivarDesactivar
- Alphabetizar
ActivarDesactivar
- Frente Primero
ActivarDesactivar
- Ambos lados
ActivarDesactivar
- Leer
ActivarDesactivar
Leyendo...
Cómo estudiar sus tarjetas
Teclas de Derecha/Izquierda: Navegar entre tarjetas.tecla derechatecla izquierda
Teclas Arriba/Abajo: Colvea la carta entre frente y dorso.tecla abajotecla arriba
Tecla H: Muestra pista (3er lado).tecla h
Tecla N: Lea el texto en voz.tecla n
Boton play
Boton play
23 Cartas en este set
- Frente
- Atrás
Scope
|
alcance o al área donde una variable puede utilizarse.
Puede ser global o local |
Como se declara una variable global fuera de una función
|
Una variable que ha sido declarada fuera de una función usando “var” es una variable global
|
Como se declara una variable global dentro de una función
|
Si declaras una variable ya sea dentro o fuera de una función pero no usar el “var” se hará una variable global.
|
function test() {
var a = 5; } test(); alert(a); //QUE PASA? |
// ReferenceError: a is not defined.
|
var a;
a = 1; alert(a); function test() { var a = 5; alert(a); a = 4; } test(); alert(a); |
//1
//5 //1 |
Block Scope, sirve el var?
|
no no sirve, para eso mejor let
|
var a;
a = 1; alert(a); // a = 1 function test() { if (true) { var a = 5; } alert(a); // QUE PASA ACA? a = 4; } test(); alert(a); // a = 1 |
a = 5
|
especialmente útil para el block scope, pero esta se usa desde ES6 y no la soportan todos los navegadores(por ahora).
|
let
|
var a;
a = 1; alert(a); // a = 1 if (true) { let a = 5; alert(a); //QIUE PASA AQUI } alert(a); // a = 1 |
// a = 5
|
Dos maneras de definir funciones?
|
expressions(expresiones) y declarations(declaraciones)
|
Que es una función de tipo expresión.
|
Las function expressions son usualmente definidas asignándolas a una variable.
|
Que es una función de tipo declarations.
|
las function declarations SI empiezan con la palabra “function”
function foo(num) { return num + 3; } |
Objetivos de un patrón de diseño
|
- Estandarizar el lenguaje entre programadores
Evitar perder tiempo en soluciones a problemas ya resueltos o conocidos Crear código reusable (excelente ventaja) |
Los patrones de diseño son la base para la búsqueda de soluciones a ___
|
problemas comunes en el desarrollo de software
|
Tipos de Patrones de diseño JS
|
- The Constructor Pattern
- The Module Pattern - The Revealing Module Pattern |
Ejemplo de constructor pattern
|
function Car( model, year, miles ) {
this.model = model; this.year = year; this.miles = miles; } // Note here that we are using Object.prototype.newMethod rather than // Object.prototype so as to avoid redefining the prototype object Car.prototype.toString = function () { return this.model + " has done " + this.miles + " miles"; }; // Usage: var civic = new Car( "Honda Civic", 2009, 20000 ); var mondeo = new Car( "Ford Mondeo", 2010, 5000 ); console.log( civic.toString() ); console.log( mondeo.toString() ); |
Module Pattern definición y en que se basan
|
Se separa la app en modulos importantes separados limpiamente y organizados, y se basa en objetos literales
var myObjectLiteral = { variableKey: variableValue, functionKey: function () { // ... } }; |
Ejemplo de Module Pattern
|
var testModule = (function () {
// private var counter = 0; return { //public incrementCounter: function () { return counter++; }, resetCounter: function () { console.log( "counter value prior to reset: " + counter ); counter = 0; } }; })(); // Usage: // Increment our counter testModule.incrementCounter(); // Check the counter value and reset // Outputs: counter value prior to reset: 1 testModule.resetCounter(); |
Revealing Module Pattern
|
var myRevealingModule = (function () {
var privateVar = "Ben Cherry", publicVar = "Hey there!"; function privateFunction() { console.log( "Name:" + privateVar ); } function publicSetName( strName ) { privateVar = strName; } function publicGetName() { privateFunction(); } // Reveal public pointers to // private functions and properties return { setName: publicSetName, greeting: publicVar, getName: publicGetName }; })(); myRevealingModule.setName( "Paul Kinlan" ); |
Cada objeto en js tiene una propiedad interna llamada
|
prototype
|
que es prototype chain
|
el objeto prototype tiene su propio objeto prototype y así sucesivamente y el máximo es object
|
para que me sirve el prototype?
|
cuando solicitas una propiedad la cual el objeto no contiene, javascript va a ir a buscar a la prototype chain hasta que encuentre la propiedad solicitada, o hasta que legue al final de la cadena. Con esto podemos implementar herencia(inheritance).
|
Para que sirven? bind(), call(), y apply()
|
son usados para cambiar la referencia del ‘this’ para una función.
|