diff --git a/weekly_mission_1/163835009-ed.png b/weekly_mission_1/163835009-ed.png new file mode 100644 index 000000000..c24cfe787 Binary files /dev/null and b/weekly_mission_1/163835009-ed.png differ diff --git a/weekly_mission_1/165124418-8396bcb.png b/weekly_mission_1/165124418-8396bcb.png new file mode 100644 index 000000000..dc5ec299b Binary files /dev/null and b/weekly_mission_1/165124418-8396bcb.png differ diff --git a/weekly_mission_1/Ejercicio-1/main.js b/weekly_mission_1/Ejercicio-1/main.js new file mode 100644 index 000000000..d6e822be5 --- /dev/null +++ b/weekly_mission_1/Ejercicio-1/main.js @@ -0,0 +1,30 @@ +// 1. Creación de un objeto con propiedades + +let myCar = new Object(); // Creación de un objeto +myCar.make = 'Ford'; // Guardando un valor dentro del objeto creado +myCar.model = 'Mustang'; +myCar.year = 1969; + +console.log(myCar) // Imprimiendo objeto + +// 2. Declaración de un objeto con variables locales y públicas + +const myModule = (() => { + +// Variables de contexto local + const privateFoo = "Soy un valor privado, solo me usan dentro de este objeto" + const privateBar = [1,2,3,4] + const baz = "Soy un valor que va a ser expuesto" + +// Variable para guardar las variables locales + const exported = { + publicFoo: "Valor público, pueden verme desde donde me llamen", + publicBar: "Otro valor público", + publicBaz: baz + } + +// Exposición de variables locales + return exported +})() + +console.log(myModule) diff --git a/weekly_mission_1/Example-10/main.js b/weekly_mission_1/Example-10/main.js new file mode 100644 index 000000000..e8fcd557c --- /dev/null +++ b/weekly_mission_1/Example-10/main.js @@ -0,0 +1,4 @@ +import MyPokemon from './pokemon.js' + +const pikachu = new MyPokemon('Pikachu') +pikachu.sayHello() diff --git a/weekly_mission_1/Example-10/package.json b/weekly_mission_1/Example-10/package.json new file mode 100644 index 000000000..959f7a6e2 --- /dev/null +++ b/weekly_mission_1/Example-10/package.json @@ -0,0 +1,13 @@ +{ + "name": "esm-syntax", + "version": "1.0.0", + "description": "", + "main": "main.js", + "type": "module", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC" +} diff --git a/weekly_mission_1/Example-10/pokemon.js b/weekly_mission_1/Example-10/pokemon.js new file mode 100644 index 000000000..e26daeff8 --- /dev/null +++ b/weekly_mission_1/Example-10/pokemon.js @@ -0,0 +1,13 @@ +export default class Pokemon{ + constructor(name){ + this.name = name + } + + sayHello(){ + console.log(`Mi pokemon ${this.name} te saluda!!!`) + } + + sayMessage(msg){ + console.log(`Mi pokemon ${this.name} dice: ${msg}`) + } +} diff --git a/weekly_mission_1/Example-2/logger.js b/weekly_mission_1/Example-2/logger.js new file mode 100644 index 000000000..e00e7d713 --- /dev/null +++ b/weekly_mission_1/Example-2/logger.js @@ -0,0 +1,17 @@ +// logger.js + +// Esta es una función que se guardara en este módulo como info +exports.info = (message) => { + console.log(`info: ${message}`) +} + +// Esta es una función que se guardara en este módulo como verbose +exports.verbose = (message) => { + console.log(`verbose: ${message}`) +} + +/* + const logger = require('./logger') + logger.info('This is an informational message') + logger.verbose('This is a verbose message') + * */ diff --git a/weekly_mission_1/Example-2/main.js b/weekly_mission_1/Example-2/main.js new file mode 100644 index 000000000..a092fb4d6 --- /dev/null +++ b/weekly_mission_1/Example-2/main.js @@ -0,0 +1,6 @@ +// node main.js + +const logger = require('./logger') + +logger.info('This is an informational message') +logger.verbose('This is a verbose message') diff --git a/weekly_mission_1/Example-3/logger_1.js b/weekly_mission_1/Example-3/logger_1.js new file mode 100644 index 000000000..22c098a01 --- /dev/null +++ b/weekly_mission_1/Example-3/logger_1.js @@ -0,0 +1,14 @@ +/* + Esto también es la declaración de una función + + module.exports hará que puedas invocar esta función en otro script como: + > const logger = require('./logger') + + y usarla como: + + > logger("Heeey!") +*/ + +module.exports = (message) => { + console.log(`info: ${message}`) +} diff --git a/weekly_mission_1/Example-3/logger_2.js b/weekly_mission_1/Example-3/logger_2.js new file mode 100644 index 000000000..748de4a08 --- /dev/null +++ b/weekly_mission_1/Example-3/logger_2.js @@ -0,0 +1,19 @@ + +/* + Al exportar una función/objeto así: + + > module.exports.verbose + + Estaremos exportando el contenido con el nombre `verbose` + + module.exports hará que puedas invocar esta función en otro script como: + > const logger = require('./logger') + + y usarla como: + + > logger.verbose("Heeey!") +*/ + +module.exports.verbose = (message) => { + console.log(`verbose: ${message}`) +} diff --git a/weekly_mission_1/Example-3/main.js b/weekly_mission_1/Example-3/main.js new file mode 100644 index 000000000..0c1b87566 --- /dev/null +++ b/weekly_mission_1/Example-3/main.js @@ -0,0 +1,9 @@ +/* + node main.js +*/ + +const logger1 = require('./logger_1') +const logger2 = require('./logger_2') + +logger1('This is an informational message') +logger2.verbose('This is a verbose message') diff --git a/weekly_mission_1/Example-4/logger.js b/weekly_mission_1/Example-4/logger.js new file mode 100644 index 000000000..1f642c9a4 --- /dev/null +++ b/weekly_mission_1/Example-4/logger.js @@ -0,0 +1,21 @@ +class Logger { + constructor(name) { + // this es una variable para referenciar el valor del contexto local de esta clase + this.name = name // Estás variables se le conocen como atributos + } + + // método + // this.name es la variable que se guarda en el contexto local + // message es una variable que se le pasa al ejecutar este método + info (message) { + console.log(`[Objeto con nombre: ${this.name}] info: ${message}`) + } + + // método + verbose (message) { + console.log(`[Objeto con nombre: ${this.name}] verbose: ${message}`) + } +} + +// Esta clase se exporta en este módulo +module.exports = Logger diff --git a/weekly_mission_1/Example-4/main.js b/weekly_mission_1/Example-4/main.js new file mode 100644 index 000000000..878bbbbb1 --- /dev/null +++ b/weekly_mission_1/Example-4/main.js @@ -0,0 +1,10 @@ +const Logger = require('./logger') // Invocas el módulo que contiene la clase + +// Creación de un objeto +const dbLogger = new Logger('DB') // Creas un objeto nuevo, esto llama por default el constructor de la clase +// invocación del método +dbLogger.info('This is an informational message') + +// Creación de otro objeto +const accessLogger = new Logger('ACCESS') +accessLogger.verbose('This is a verbose message') diff --git a/weekly_mission_1/Example-5/logger.js b/weekly_mission_1/Example-5/logger.js new file mode 100644 index 000000000..e8fbe35d7 --- /dev/null +++ b/weekly_mission_1/Example-5/logger.js @@ -0,0 +1,14 @@ +class Logger { + constructor(name){ + // Al crear este objeto se guardarán estos valores + this.count = 0 + this.name = name + } + + log(message) { + this.count++ // se aumenta el contador interno al llamar este método + console.log('[' + this.name + '] ' + message) + } +} + +module.exports = new Logger('DEFAULT') // Instanciación del objeto y se exporta diff --git a/weekly_mission_1/Example-5/main.js b/weekly_mission_1/Example-5/main.js new file mode 100644 index 000000000..d128bebad --- /dev/null +++ b/weekly_mission_1/Example-5/main.js @@ -0,0 +1,10 @@ +const logger = require('./logger') + +// Ya se puede usar directamente el objeto instanciado en el módulo logger +logger.log('This is an informational message') + +/* +También pueder instanciar uno nuevo de esta manera: + const customLogger = new logger.constructor('CUSTOM') + customLogger.log('This is an informational message') +*/ diff --git a/weekly_mission_1/Example-6/logger.js b/weekly_mission_1/Example-6/logger.js new file mode 100644 index 000000000..4e2debfb8 --- /dev/null +++ b/weekly_mission_1/Example-6/logger.js @@ -0,0 +1,14 @@ +class Logger { + constructor (name) { + this.count = 0 + this.name = name + } + + log (message) { + this.count++ + console.log('[' + this.name + '] ' + message) + } +} + +module.exports = new Logger('DEFAULT') // Nuevo objeto instanciado +module.exports.Logger = Logger // Clase diff --git a/weekly_mission_1/Example-6/main.js b/weekly_mission_1/Example-6/main.js new file mode 100644 index 000000000..430fa5d89 --- /dev/null +++ b/weekly_mission_1/Example-6/main.js @@ -0,0 +1,4 @@ +require('./patcher') // Llamas este módulo que modifica el objeto instanciado +const logger = require('./logger') // Al llamar el módulo en logger.js te dará el objeto modificado + +logger.customMessage() diff --git a/weekly_mission_1/Example-6/patcher.js b/weekly_mission_1/Example-6/patcher.js new file mode 100644 index 000000000..38dbf70fc --- /dev/null +++ b/weekly_mission_1/Example-6/patcher.js @@ -0,0 +1,10 @@ +/* + * Ten en cuenta: + * - require('./logger') te dará el objeto creado + * - require('./logger').Logger te regresará la clase + * + * En este caso estamos agregando una función más al objeto instanciado, no a la clase. + * */ +require('./logger').customMessage = function () { + console.log('This is a new functionality') +} diff --git a/weekly_mission_1/Example-7/logger.js b/weekly_mission_1/Example-7/logger.js new file mode 100644 index 000000000..a8b066c1c --- /dev/null +++ b/weekly_mission_1/Example-7/logger.js @@ -0,0 +1,40 @@ +/* + Este modulo se comporta como si fuera un objeto que contiene todo lo definido + + [Module: null prototype] { + DEFAULT_LEVEL: 'info', + LEVELS: { error: 0, debug: 1, warn: 2, data: 3, info: 4, verbose: 5 }, + Logger: [class Logger], + log: [Function: log] + } + +*/ + +// exports a function +export function log (message) { + console.log(message) +} + +// exports a constant +export const DEFAULT_LEVEL = 'info' + +// exports an object +export const LEVELS = { + error: 0, + debug: 1, + warn: 2, + data: 3, + info: 4, + verbose: 5 +} + +// exports a class +export class Logger { + constructor (name) { + this.name = name + } + + log (message) { + console.log(`[${this.name}] ${message}`) + } +} diff --git a/weekly_mission_1/Example-7/main.js b/weekly_mission_1/Example-7/main.js new file mode 100644 index 000000000..883418ca8 --- /dev/null +++ b/weekly_mission_1/Example-7/main.js @@ -0,0 +1,3 @@ +import * as loggerModule from './logger.js' + +console.log(loggerModule) diff --git a/weekly_mission_1/Example-7/main_2.js b/weekly_mission_1/Example-7/main_2.js new file mode 100644 index 000000000..632b8a896 --- /dev/null +++ b/weekly_mission_1/Example-7/main_2.js @@ -0,0 +1,3 @@ +import { log } from './logger.js' + +log('Hello world') diff --git a/weekly_mission_1/Example-7/main_module.js b/weekly_mission_1/Example-7/main_module.js new file mode 100644 index 000000000..93b65d7aa --- /dev/null +++ b/weekly_mission_1/Example-7/main_module.js @@ -0,0 +1,4 @@ +/* Importando el módulo */ +import * as loggerModule from './logger.js' + +console.log(loggerModule) diff --git a/weekly_mission_1/Example-7/package.json b/weekly_mission_1/Example-7/package.json new file mode 100644 index 000000000..959f7a6e2 --- /dev/null +++ b/weekly_mission_1/Example-7/package.json @@ -0,0 +1,13 @@ +{ + "name": "esm-syntax", + "version": "1.0.0", + "description": "", + "main": "main.js", + "type": "module", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC" +} diff --git a/weekly_mission_1/Example-8/logger.js b/weekly_mission_1/Example-8/logger.js new file mode 100644 index 000000000..0c7645cbc --- /dev/null +++ b/weekly_mission_1/Example-8/logger.js @@ -0,0 +1,15 @@ +/* + export default nos permite exportar esta clase e importara + + import MyLogger from './logger.js' +*/ + +export default class Logger { + constructor (name) { + this.name = name + } + + log (message) { + console.log(`[${this.name}] ${message}`) + } +} diff --git a/weekly_mission_1/Example-8/main.js b/weekly_mission_1/Example-8/main.js new file mode 100644 index 000000000..4c9b627d7 --- /dev/null +++ b/weekly_mission_1/Example-8/main.js @@ -0,0 +1,5 @@ +// Importando la clase MyLogger +import MyLogger from './logger.js' + +const logger = new MyLogger('info') +logger.log('Hello World') diff --git a/weekly_mission_1/Example-8/main_2.js b/weekly_mission_1/Example-8/main_2.js new file mode 100644 index 000000000..93b65d7aa --- /dev/null +++ b/weekly_mission_1/Example-8/main_2.js @@ -0,0 +1,4 @@ +/* Importando el módulo */ +import * as loggerModule from './logger.js' + +console.log(loggerModule) diff --git a/weekly_mission_1/Example-8/package.json b/weekly_mission_1/Example-8/package.json new file mode 100644 index 000000000..959f7a6e2 --- /dev/null +++ b/weekly_mission_1/Example-8/package.json @@ -0,0 +1,13 @@ +{ + "name": "esm-syntax", + "version": "1.0.0", + "description": "", + "main": "main.js", + "type": "module", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC" +} diff --git a/weekly_mission_1/Example-9/logger.js b/weekly_mission_1/Example-9/logger.js new file mode 100644 index 000000000..8b6cb173d --- /dev/null +++ b/weekly_mission_1/Example-9/logger.js @@ -0,0 +1,17 @@ +/* + export default nos permite exportar esta clase e importara + import MyLogger from './logger.js' +*/ + +export default class Logger { + constructor (name) { + this.name = name + } + + log (message) { + console.log(`[${this.name}] ${message}`) + } +} +© 2022 GitHub, Inc. +Terms +Privacy diff --git a/weekly_mission_1/Example-9/main.js b/weekly_mission_1/Example-9/main.js new file mode 100644 index 000000000..4c9b627d7 --- /dev/null +++ b/weekly_mission_1/Example-9/main.js @@ -0,0 +1,5 @@ +// Importando la clase MyLogger +import MyLogger from './logger.js' + +const logger = new MyLogger('info') +logger.log('Hello World') diff --git a/weekly_mission_1/Example-9/node main.js b/weekly_mission_1/Example-9/node main.js new file mode 100644 index 000000000..93b65d7aa --- /dev/null +++ b/weekly_mission_1/Example-9/node main.js @@ -0,0 +1,4 @@ +/* Importando el módulo */ +import * as loggerModule from './logger.js' + +console.log(loggerModule) diff --git a/weekly_mission_1/Example-9/pachage.json b/weekly_mission_1/Example-9/pachage.json new file mode 100644 index 000000000..959f7a6e2 --- /dev/null +++ b/weekly_mission_1/Example-9/pachage.json @@ -0,0 +1,13 @@ +{ + "name": "esm-syntax", + "version": "1.0.0", + "description": "", + "main": "main.js", + "type": "module", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC" +} diff --git a/weekly_mission_2/content/example_0.js b/weekly_mission_2/content/example_0.js new file mode 100644 index 000000000..19342dc30 --- /dev/null +++ b/weekly_mission_2/content/example_0.js @@ -0,0 +1,58 @@ +console.log("Objetos") + +// Ejemplo 1: Crear un objeto +const myObjetc = {} // Esto es un objeto vacío +console.log("Ejemplo 1: Crear un objeto vacío") +console.log(myObjetc) + +// Ejemplo 2: Crear un objeto con propiedades +const myObjetc2 = { + name: "Carlo", + age: 27 +} +console.log("Ejemplo 2: Crear un objeto con propiedades") +console.log(myObjetc2) + +// Ejemplo 3: Objeto con diferentes propiedades +const myObject3 = { + name: "Tulio", + age: 2, + nicknames: [ + "Tulipan", + "Tulancingo", + "Tulish" + ], + address: { + zip_code: "10000", + street: "Dr. Vertiz 11 Benito Juarez", + city: "CDMX" + } +} +console.log("Ejemplo 3: Objeto con diferentes propiedades") +console.log(myObject3) +console.log(myObject3.name) +console.log(myObject3["address"]) + +// Ejemplo 4: Objeto con métodos +const pet = { + name: "Tulio", + // Esta es una función que se guarda como propiedad + sayHello: function(){ + // this.name hace referencia a la propiedad del objeto + console.log(`${this.name} te saluda en español!`) + } +} + +console.log("Ejemplo 4: Objeto con métodos") +pet.sayHello() + +// Ejemplo 5: Objeto con método que recibe parámetros +const myPet = { + name: "Woopa", + sayHelloToMyPet: function(yourPet){ + console.log(`${this.name} say's hello to ${yourPet}`) + } +} + +console.log("Ejemplo 5: Objeto con método que recibe parámetros") +myPet.sayHelloToMyPet("Tulio") diff --git a/weekly_mission_3/readme.md b/weekly_mission_3/readme.md index ddcd3044d..7af659223 100644 --- a/weekly_mission_3/readme.md +++ b/weekly_mission_3/readme.md @@ -1 +1,18 @@ # Weekly Mission 3 +# Semana 3 + +Proyectos desarrollados en la semana 3: + +| Proyecto | Práctica | Link al repo | +| ------------- |:-------------:| -----:| +|`my_launchx_app`|1|[Link al repo](https://github.com/JibhranLimon96/my_launchx_app.git)| +|`spiderverse`|2|[Link al repo](https://github.com/JibhranLimon96/spiderverse.git)| +|`twitter`|3, 4, 5|[Link al repo](https://github.com/JibhranLimon96/twitter-Jibhran.git)| +|`express_basic`|6|[Link al repo](https://github.com/JibhranLimon96/Express-Api.git)| +|`express_api`|7|[Link al repo](https://github.com/JibhranLimon96/Express-Api.git)| + +## IMPORTANTE 🛑 + + **Launch X Node JS** Imagen de LaunchX + +![banner](https://github.com/JibhranLimon96/playbook/blob/fc334bfd6a783a313b658a2222c7d56a0140085c/weekly_mission_1/163835009-ed.png)