Scripting Front/Back Flashcards

1
Q

¿Cuál es el estandard de Javascript?

A

ECMA-262

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Paradigmas que implementa JavaScript

A
  • Funcional –> se pueden asignar funciones a variables
  • Imperativo –> Bucles, if
  • Procedural –>
  • ‘Orientado a objetos’ –> Basado en objetos/prototipos
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Caracteristicas Javascript (ES5)

A
  • Interpretado –> lo interpreta el cliente, no se compila
  • Funciones de primera clase –>
    • Poder pasar funciones como argumentos a otras funciones.
    • Que el valor de retorno de una función sea otra función.
    • Asignar funciones a variables o almacenarlas en estructuras de datos.
  • Basado en prototipos
  • Dinamico
  • Orientado a eventos
  • Clausuras
  • ES6 añadió nuevas caracteristicas –>
    • Promesas
    • Clases
    • Array functions (foreach, map, filter)
    • Arrow functions (=lambda)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Motores Javascript en los principales navegadores

A
  • Edge –> Chakra
  • Chrome –> V8
  • Firefox –> SpiderMonkey
  • Safari –> Nitro
  • Opera –> V8
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Leguajes basados en Javascript. Trasnpilers

A
  • TypeScript (MS)
  • CoffeScript
  • Trasnpiladores –> De fuente a fuente
    • Babel
    • Traceur
    • TSC
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Si hablamos de un runtime enviroment Javascript, hablamos de ….

A

NodeJS (interprete V8)

NOTA: Necesitamos tener instalado NodeJs si pretendenmos usar los gestores de paquetes escritos en JS (npm, Yarn)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Aplicaciones para gestión Paqueteria/Dependencias ‘mundo’ Front

A
  • nodeJS –> maquina virtual de javascript. Motor V8(igual que Google Chrome) lo necesitamos para correr los gestores de dependencias.
  • npm –> escrito en javascript. Gestión de paquetes
  • Yarn –> escrito en javascript
  • Bower–> Dependencias
  • Ficheros de configuración –> packet.json
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Aplicaciones para automatización de tareas

A
  • Grunt –> viejuna
  • Gulp –> viejuna
  • Empaquetadores (Packet bundle)–> nuevos. Pruebas, limpieza y empaquetado
    • Webpack
    • Parcel
    • Rollup
    • Browserify
    • ESBuild
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Frameworks Javascript

A
  • VUE (Chino)
  • React (libreria, Facebook)
  • Angular (Google)
  • Ember
  • Express para Back
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Si decimos ‘JavaScript Vanilla’, ¿A qué nos referimos?

A

A Javascript puro.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

¿Qué es JQuery?

A

Es una libreria. No confundir con los frameworks (Angular, React)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Como creo una app Angular desde cero

A
  1. Intalamos o tenemos ya instalado NodeJS
  2. Instalamos Angular –>
npm install -g @angular/cli
  1. Creamos un proyecto –>
ng new my-angular
  1. Creamos componentes –> ver imagen
ng g c home
  1. Empaquetamos –>
ng build
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Versiones de ECMAScript y sus años

A
  • ES5 –> 2011
  • ES6 –> 2015
  • ES7 –> 2016
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Tres manera de definir variables en Javascript

A
  • const –> valor constante
  • var –> variable con mucho ambito/alcance (desaconsejado)
  • let –> variable con ambito/alcance local
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

¿Para que sirve ‘call’ en JS?

A

Con ‘call’ podemos invocar una función. Imaginemos que tenemos contenida la funcion en una variable/parametro de otra función, y queremos ejecutarla:

function f1(){
     console.log('Texto F1');
}

function f2(){
     console.log('Texto F2');
}

function invocadora (f) {
    f.call
}

invocadora(f2);

Mostrará en pantalla el texto ‘Texto F2’

NOTA: Se prodria ejecutar como ‘f.call()’ o como ‘f()’

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Programación orientada a prototipos. Ejemplo

A
//Funcion constructora o generadora
function Person(edad, nombre){
     this.edad = edad;
     this.nombre = nombre;
}

Person.prototype.saluda=function(){
     console.log('Hola, soy ' + this.nombre + ' y tengo ' + this.edad + ' años' );
}

let p1 = new Person(30, 'Luis');
let p2 = new Person(40, 'Maria');

p1.saluda();
p2.saluda();

Consola:

Hola, soy Luis y tengo 30 años
Hola, soy Maria y tengo 40 años

NOTA: si metiesemos la función dentro de Person, al crear objetos nos la duplicaría por cada objeto pero al hacerlo a través de ‘prototype’ solo la crea una vez

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Tipos de datos en Js

A
  • Number
  • String
  • Boolean
  • Array
  • Object
  • null
  • undefined
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Operadores en JS

A
  • Asignación –> =
  • Aritmeticos –> +, -, *, /, %, **
  • Logicos –> !, &&, ||
  • Relacionales –> >, <, >=, >=, ==, !=, === (valor y tipo)
  • Operador flecha –> =>
  • typeof, instanceof, delete, void,
  • A nivel de bits -> |, &, ^, ~, <<, >>, >>>
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Manejo del objeto Arrays en Js

A
let colors = ['red', 'green', 'blue'];

console.log('tercer elemento: ' + colors.at(2)) ;

//Sacar el último elemento eliminandolo
console.log(colors.pop()) ; //blue --> colors = ['red', 'green'];
console.log(colors.pop()) ; //green --> colors = ['red'];

//Meter por el final y retorna el nuevo número de elementos
console.log(colors.push('violet')) ; //2 --> colors = ['red', 'violet']; 
console.log(colors.push('purple')) ; //2 --> colors = ['red', 'violet', 'purple']; 

//Sacar el primer elemento eliminandolo
console.log(colors.shift()) ; //red --> colors = ['violet', 'purple']; 
console.log(colors.shift()) ; //violet --> colors = ['purple']; 

// color.sort()
// Array.prototype.length (propiedad) --> color.length
// color.forEach( (element) => console.log(element)); --> ejecuta la función 
// por cada elemento
// * color.splice(start, num.Borrados, itemInsert, ....)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Funcion ‘splice()’ de los arrays en JS

A

Función ‘navaja suiza’. En el lugar del índice dado, borra tantos elementos como se indique y añade en esa posición los elementos listados.

splice(start)
splice(start, deleteCount)
splice(start, deleteCount, item1)
splice(start, deleteCount, item1, item2)
splice(start, deleteCount, item1, item2, /* …, */ itemN)

//*******************
//Remove 0 (zero) elements before index 2, and insert "drum"
const myFish = ["angel", "clown", "mandarin", "sturgeon"];
const removed = myFish.splice(2, 0, "drum");

// myFish is ["angel", "clown", "drum", "mandarin", "sturgeon"]

//********************
//Remove 1 element at index 2, and insert "trumpet"
const myFish = ["angel", "clown", "drum", "sturgeon"];
const removed = myFish.splice(2, 1, "trumpet");

// myFish is ["angel", "clown", "trumpet", "sturgeon"]
// removed is ["drum"]

//**********************
//Remove 2 elements from index 0, and insert "parrot", "anemone" and "blue"
const myFish = ["angel", "clown", "trumpet", "sturgeon"];
const removed = myFish.splice(0, 2, "parrot", "anemone", "blue");

// myFish is ["parrot", "anemone", "blue", "trumpet", "sturgeon"]
// removed is ["angel", "clown"]
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Manejo del objeto JSON en Js

A
  • El método JSON.stringify() convierte un objeto o valor de JavaScript en una cadena de texto JSON, opcionalmente reemplaza valores si se indica una función de reemplazo, o si se especifican las propiedades mediante un array de reemplazo.
  • El método JSON.parse() analiza una cadena de texto como JSON, transformando opcionalmente el valor producido por el análisis.
JSON.stringify(value)
JSON.stringify(value, replacer)
JSON.stringify(value, replacer, space)

//**********************
let person = {
    firstName: 'John',
    lastName: 'Doe';
    age: 30
};

console.log(JSON.stringify(person)); 
//{"firstName": "John", "lastName": "Doe", "age": 30};

//**************************

JSON.parse(text[, reviver])

//**************************
const personJson = {"firstName": "John", "lastName": "Doe", "age": 30};

let personObj = JSON.parse(personJson);
console.log(personObj.firstName); // John
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Cómo hariamos herencia en Javascript

A

Encadenando prototypes.

funcion Persona(){
}

Persona.prototype.saluda = function() { console.log('Hola mundo');}

function Empleado(){
}

Empleado.prototype = Persona.prototype //Habriamos heredado de Persona
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Producto para calidad de código en JS

A

ESLint

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Expresiones regulares en JS

A
  • test(text) –> Comprueba si la expresión regular «casa» con el texto text pasado por parámetro.
  • exec(text) –> Ejecuta una búsqueda en el texto text. Devuelve un array con capturas de lo que coincide.
  • texto.match(regex) –> como test pero se usa de otra manera, con el regex por parametro

NOTA: Estas funciones son de patron, seria algo asi como:

var myRe = /d(b+)d/g;
var myArray = myRe.exec("cdbbdbsbz");
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Funcionamiento de AJAX

A
  • API AJAX –> XMLHttpRequest
    • open (URL servicio REST. Ej.: GET/empleados)
    • send (Lanzamos realmente la petición)
    • Properties
      • readyState –> valores entre el 0-4. 4 es que los datos ya están cargados
      • status –> código http (200 es bien)
      • onreadystatechange –> tu tienes que codificar tu funcion de tratamiento que se lanzará cuando cambie readyState. Manejador de eventos
      • responseText –> Información de vuelta tipo JSON
      • responseXML –> Información de vuelta tipo XML
  • Librerias de terceros AXIOS
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Funcionamiento de Fech

A
  • Promesas –> Al ser JS mono-hilo hacemos promesas que son funciones que pueden ir ‘bien’ o ‘mal’, y se pasan otras dos funciones para manejarlo.
let promise = new Promise(function(resolve, reject) {
  // la función se ejecuta automáticamente cuando se construye la promesa

  // después de 1 segundo, indica que la tarea está hecha con el resultado "hecho"
  setTimeout(() => resolve("hecho"), 1000);
});

promise('/empleados').then(
  function(result) { /* manejar un resultado exitoso */ },
  function(error) { /* manejar un error */ }
);

// .catch(f) es lo mismo que promise.then(null, f)
promise.catch(alert); 
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Funcionamiento de async/await

A
async function f() {

  let promise = new Promise((resolve, reject) => {
    setTimeout(() => resolve("¡Hecho!"), 1000)
  });

  let result = await promise; // espera hasta que la promesa se resuelva (*)

  alert(result); // "¡Hecho!"
}

f();
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

APIS de HTML5

A
  • WebStorage
  • WebSocket / Server-Sent Events
  • Geolocation
  • Canva
  • IndexedDB
  • File
  • WebWorker
  • Drag&Drop
  • Selector
  • SVG
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Eventos y manejadores de eventos en JS

A
<!-- Antiguamente -->
<a href="..." onclick="funcion()" />

// Ahora --> En el fichero Js sin 'ensuciar' el HTML
const a = document.querySelector("a");

a.addEventListener("click", function(e) {    
    e.preventDefault();    
    e.stopPropagation();
    logEvent(e);
});

NOTA: Hay eventos que burbujean. Se puede parar si no nos interesa con la funcion ‘stopPropagation()’

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Librerias para pruebas Js

A
  • Jasmine
  • Jest
  • Mocha
  • Karma
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

Consideraciones Javascript

A
  • Nació como lenguaje para scripting en el cliente pero se ha extendido al mundo servidor
  • Paqueteria –> npm (package.json)
  • Frameworks –> Express
  • Runtime –> NodeJS (V8)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

Consideraciones PHP

A
  • No nació como lenguaje para el mundo web
  • Paqueteria –> Composer (composer.json)
  • Frameworks –> Symphony, Laravel, CakePHP, Yii
  • Runtime –> Zend
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

Consideraciones Ruby

A
  • Paqueteria –> Gems (gemfile)
  • Framework –> Ruby on Rails
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

Consideraciones Pyton

A
  • Paqueteria –> Pip (setup.py)
  • Frameworks –> Django, Flask
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

Consideraciones Javascript en servidor

A
  • Paqueteria –> npm (package.json)
  • Frameworks –> Express (backend servicio rest)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

Orden para bajarse un paquete en PHP

A

composer require vendor/package:version

composer require tecnickcom/tcpdf
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
37
Q

Qué es MEAN

A
  • MongoDB
  • Express.js
  • Angular
  • Node.js
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
38
Q

Qué es MERN

A
  • MongoDB
  • Express.js
  • React
  • Node.js
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
39
Q

Qué es MEVN

A
  • MongoDB
  • Express.js
  • VUE
  • Node.js
40
Q

Entorno de ejecución PHP

A
  • Capa 1) Necesita siempre un ‘Frontal web’, Servidor Web o Servidor HTTP (Apache HTTP o NGINX)
  • Capa 2) Runtime
    • Módulo PHP de Apache –> Se ejecuta en el mismo ‘proceso’ que el propio Apache
    • Módulo php-fpm –> Se ejecuta el interprete en un proceso independiente
  • Capa 3) BBDD

NOTA: Pensemos que PHP no nació para el mundo web

41
Q

Infraestructura para probar/ejecutar PHP

A
  • WAMP –> Windows, Apache, MySQL, PHP (Perl, Python)
  • LAMP –> Linux, Apache, MySQL, PHP (Perl, Python)
  • MAMP –> Mac, Apache, MySQL, PHP (Perl, Python)
  • XAMPP –> SO, Apache, MySQL/MariaDB, PHP (Perl, Python). Es el generíco de los otros
  • LEMP –> Linux, NGINX, MySQL, PHP (Perl, Python)
42
Q

Qué es LMS / CMS en PHP y que gestores tenemos. Productos comerciales

A
  • LMS -> Learnign Manage System eLearning –> Moodle
  • CMS –> Content Manage System Generalista (Gestor de contenido)–> Drupal / Wordpress / Joomla
  • Gestor de contenido orientado a comercio electronico/tienda on-line –> Magento, Prestashop, Oscommerce
  • Gestor de contenidos para foros –> phpBB
  • Gestor de contenido para wiki –> DocuWiki y MediaWiki
  • Gestores documentales –> NO gestionan contenido, gestionan documetos (pdf), Metadatos + ACLS acceso + Versionado –> Alfresco y Documentum
43
Q

Que es Deno

A

Runtime competencia de Node.js

44
Q

PHP. Importar paquetes

A
  • include/include_once (si no existe Warning y sigue)
  • require/require_once (si no existe error y para)

EJ.: include ‘/Path/To/File.php’;

45
Q

PHP. Tipos de datos

A
  • Integer
  • Float
  • String
  • Array
  • Object
  • Resource –>
  • Boolean
  • NULL
46
Q

PHP. Variables y constantes

A
  • Constantes:
    • const PI = 3.14; –> Sin ‘$’ se resuelven en tiempo de ejecucíon
    • define(‘MAX’,200); –> se resuelve en tiempo de ejecucion (no se puede usar en clases). Se puede definir condicionalmente. Se usa sin ‘$’
    • Existen una serie de constantes magicas que tienen el formato __CONSTANTE__ como son: DIR, LINE, CLASS, METHOD, FUNCTION, TRAIT, NAMESPACE –> echo ‘Valor de __DIR__: ‘.__DIR__.PHP_EOL; // Dir actual
  • Variables
    • $variable1 = 10; –> Siempre con ‘$’
    • isset($variable4) –> para saber si esta inicializada
47
Q

PHP. Operadores

A
  • = –> para asignar una variable –> $a=6;
  • . –> Para concatenar cadenas de caractares –> $variable3 = $variable2.$variable1;
  • .= –> Concatenación y asignación
  • == –> Si es Igual en valor / En arrays si son iguales los valores
  • === –> Si son el mismo valor-tipo / En arrays si son el mismo valor-tipo
  • != –> Distinto valor/ En arrays que no sean iguales
  • !== –> Distinto valor-tipo / En arrays si son distintos valor-tipo
  • <> –> Distinto / En arrays que no sean iguales
  • < –> Menor que
  • <= –> Menor o igual
  • > –> Mayor que
  • > = –> Mayor o igual
  • <=> –> Spaceship operator. A <=> B –> 1 si A>B; 0 si A=B; -1 si A<B
  • ’+’ –> Suma / En arrays Union
  • ’-‘ –> Resta
  • ‘*’ –> Multiplicacion
  • / –> Division
  • % –> Modulo
  • ** –> Exponente
  • ++ –> Operador de incremento
  • – –> Operador de decremento
  • && –> And
  • || –> Or
  • ! –> Not
  • and –> And
  • xor –> Xor
  • or –> Or
  • ?: = Ternary operator. (Condition) ? (Statement1) : (Statement2); print ($marks>=40) ? “pass” : “Fail”;
  • ?? –> echo $variable4 ?? ‘$variable4 sin valor’.PHP_EOL; // output –> $variable4 sin valor (porque $variable4 es NULL)
48
Q

PHP. Cadenas de caracteres

A
  • Concatenación –> ‘.’ –> $variable3 = $variable2.$variable1;
  • ’ –> Las cadenas con comillas simples NO son parseadas. $cad1=’Hola Que tal $var1’;// output –> Hola Que tal $var1
  • ” –> Las cadenas con dobles comillas son parseadas/evaluadas. $cad2=”Hola Que tal $var1”; // output –> Hola Que tal 300
  • $cad1[0]; –> Referencia los caracteres por posicion en la cadena
  • SUBSTR
    • substr(“abcdef”, 2); // output –> cdef
    • substr(“abcdef”, -2) ; // output –> ef (con “start” negativo empieza por el final)
    • substr(“abcdef”, 0, 2); // output –> ab (toma los primeros 2)
    • substr(“abcdef”, 0, -2); // output –> abcd (con “length” negativo, quita los ultimos dos)
  • echo “Valor de PI:”.PI;
    printf(“Hay %u minutos en una %s”, $minutos, $unidadTiempo); // Impresion con formato
  • echo preg_replace($pattern, $replacement, $string); // Remplaza en la cadena $string lo que coincida con $pattern por $replacement
  • $array = preg_split( “/[\s,]+/”, $texto );// Guardo en un array todas las palabras separadas por comas o espacios.
  • preg_match( $patron, $texto ); // Encuentra el patron $patron en el texto $texto
49
Q

PHP. Arrays

A
  • $arr1 = array(10, ‘abc’, 30); //Se crea con datos heterogeneos
  • $arr2 = array(3 => 66, 5 => ‘abc’, 7 => 99 ); // indice numerico explicito
  • $arr3 = array(‘name’ => ‘foo’, ‘age’ => 20);// asociativo (el indice no es numerico)
  • $arr4 = [‘name’ => ‘foo’, ‘age’ => 20];// forma corta con [ ]
  • $arr5 = explode(‘,’, $cadena1); // crea un array a base de trocear $cadena con el delimitadorj. implode(“,”, $arr6); crea una cadena a partir de una array $arr6 con el delimitador ‘,’
  • $arr7 = str_split($cadena2, 3); // trocea la cadena de 3 en 3 caracteres
  • array_fill(10, 5, ‘five’); // Crear un array que comienza en el indice 10, de 5 elementos y con valor ‘five’ en todas las entradas
  • range(0, 100, 10); // Crea un array mediante la definicion de un rango(inicio, fin, paso/incremento)
  • array_shift($stack); // Desplaza los elmentos hacia la izquierda, eliminando y retornando el primero. Desencolar
  • array_pop($stack); //Saca y elimina el último elemento. Pila
  • array_push($stack,”five”); // añade un elemento por el final. Pila
  • array_map(“funcion”, $datos1); // Ejecuta sobre todos los elementos de $datos1 la función “funcion” y devuelve el array resultado. $datos1 no queda modificado.
  • list($a, $b, $c) = $array; //Inicializa las variables $a, $b, $c con el contenido de $array.
  • sort($datos4); //Ordena los datos, rsort(al revés), ksort(por clave)
  • count($datos5); //Devuelve el numero de elementos del array
50
Q

PHP. Bucles y sentencias de control

A
  • IF / ELSE / ELSE IF/ELSEIF / SWITCH
if ($a > $b) {
    echo "a is bigger than b";
} elseif ($a == $b) {
    echo "a is equal to b";
} else {
    echo "a is smaller than b";
}

switch ($i) {
    case 0:
        echo "i equals 0";
        break;
    case 1:
        echo "i equals 1";
        break;
    case 2:
        echo "i equals 2";
        break;
}
  • FOR
for ($i = 1; $i <= 10; $i++) {
    echo $i;
}
  • FOREACH (en arrays)
$arr = [
    '111' => 'daniel',
    '222' => 'pedro',
    '333' => 'ana'
];

// de esta forma, obtenemos por referencia los elementos del array y podemos modificarlos con la variable de iteracion
foreach($arr as $value) {
     $value += 1;
}

foreach($arr as $key => $value) {
    echo $key . ' = ' . $value . PHP_EOL;
}
  • WHILE
/* example 1 */

$i = 1;
while ($i <= 10) {
    echo $i++;  /* the printed value would be
                   $i before the increment
                   (post-increment) */
}

/* example 2 */

$i = 1;
while ($i <= 10):
    echo $i;
    $i++;
endwhile;
  • DO-WHILE
$i = 0;
do {
    echo $i;
} while ($i > 0);
51
Q

PHP. Funciones

A
  • function funcion1(int $param) //
  • function funcion2(?Producto $param) //Admite null en la llamada
  • function myFunc(){…} …. myFunc(‘variable’, 3, ‘parametros’); // Se puede llamar con parametros a funciones sin parametros. Dentro con un for se recorre la entrada.
  • function sumarUno(&$arg) // Parametros por referencia
  • function funcion3() …. $var = “funcion3”; // Asignacion de funciones (tipico de la prog. funcional)
52
Q

PHP. Programación orientada a objetos

A
  • $this->atributo –> se hace referencia con ‘->’ y no con ‘.’
  • static –> define métodos estaticos
  • self::metodo() –> Desde dentro de la clase llamada a métodos estaticos.
  • Clase::metodo() –> Desde fuera de la clase llamada a métodos estaticos.
  • parent:: –> como super en Java
  • $objeto->metodo() –> Llamada a método de clase normal
  • class Cliente extends Persona –> Igual que Java
  • __construct($nombre,$email) –> Con doble ‘__’
  • __call($name_of_function, $arguments) –> Sobrecarga. Si llamamos a un método que no existe en nuestra clase pero tenemos definido el __call entrára por ahí
  • Magic Method Get/Set –> necesitan establecer los valores en un array de properties asociativo con los nombres de los atributos.
    • __get –> Getter
    • __set –> Setter
  • final –> Igual que Java
  • public / potected / private –> Igual que Java
53
Q

PHP. Superglobals

A

Le dan a PHP ojos en el mundo web. Si no existieran estas variables PHP no podria usar nada del mundo web. Son Arrays ASOCIATIVOS (clave-valor)

  • $GLOBALS
  • $_SERVER –> Datos del servidor
  • $_GET –> Tenemos todo lo que haya en la queryString (/empleado?usr=1234)
  • $_POST –> Datos pasados por un formulario
  • $_FILES –> Si nos mandan ficheros
  • $_COOKIE –> Datos de las cookies
  • $_SESSION
  • $_REQUEST –> Array asociativo con: $_GET, $_POST and $_COOKIE.
  • $_ENV
54
Q

PHP. Tratos

A

El orden de ejecución siempre será :

Class members > trait methods > inherited methods

trait Dog {
    public function makeNoise() {
        echo "Woof".PHP_EOL;
    }
    public function wantWalkies() {
        echo "Yes please!".PHP_EOL;
    }
}
trait Cat {
    public function makeNoise() {
        echo "Purr".PHP_EOL;
    }
    public function wantWalkies() {
        echo "No thanks!".PHP_EOL;
    }
}

class Animal {
    function wantWalkies () {
        echo "Animal".PHP_EOL;
    }
}

class DomesticPet extends Animal
{
    use Dog, Cat {
        Cat::makeNoise insteadof Dog;
        Cat::wantWalkies as kittyWalk;
        Dog::wantWalkies insteadof Cat;
    }
}
$obj = new DomesticPet();
$obj->makeNoise(); // Purr
$obj->wantWalkies(); // Yes please!
$obj->kittyWalk(); // No thanks!
55
Q

PHP. MySQL

A
  • PROCEDURAL
    • mysqli_connect(“localhost”, “root”, “root”, “rrhh”);
    • mysqli_prepare($link, $sql))
    • mysqli_stmt_bind_param($stmt, “s”, $param_term);
    • mysqli_stmt_execute($stmt))
    • mysqli_stmt_get_result($stmt);
  • PDO
    • $pdo = new PDO(“mysql:host=localhost;dbname=rrhh”, “root”, “root”);
    • $stmt = $pdo->prepare($sql);
    • $stmt->bindParam(“:term”, $term);
    • $stmt->execute();
    • $stmt->fetch()
  • OBJETOS
    • $mysqli = new mysqli(“localhost”, “root”, “root”, “rrhh”);
    • $stmt = $mysqli->prepare($sql)
    • $stmt->bind_param(“s”, $param_term);
    • $result = $stmt->execute()
    • $row = $result->fetch_array(MYSQLI_ASSOC)
56
Q

PHP. JSON

A
  • json_encode($row); –> Pasa a JSON el objecto PHP
$stack = array("one", "two", "three", "four");
echo json_encode($stack);  
  • json_decode($json); –> Pasa a un objeto PHP la cadena JSON
$json = '{"foo-bar": 12345}';

$obj = json_decode($json);
print $obj->{'foo-bar'}; // 12345
57
Q

PHP. Laravel

A
  • PRINCIPALES COMPONENTES
    • FACTORY
    • SEEDER
    • MODEL
    • MIGRATION
    • CONTROLLER (RUTAS y MIDDLEWARE)
    • JOBS
    • GATES y POLICIES
  • Elocuent –> ORM de Laravel.
  • Doctrine –> ORM de Symfoy
58
Q

¿Cuál de los siguientes NO es un framework para javascript?

a) Angular

b) Bootstrap

c) React

d) JDBC

59
Q

¿Cuál de los siguientes lenguajes está relacionado con el desarrollo en backend?

a) GO

b) SASS

c) XML

d) ANGULAR

60
Q

En JSON, ¿qué valor mostraria la consola si ejecutamos este código: console.log(4 * 3 ** 2)?

a) 36

b) -1

c) 24

d) Null

61
Q

En PHP, señale qué variable de entorno se puede usar para almacenar datos del inicio de sesión de un usuario:

a) $_SESSION

b) $SESSION

c) $_GLOBAL

d) $GLOBAL

A

a) $_SESSION

62
Q

¿Qué conjunto de herramientas de presentación y comportamiento ofrece componentes para trabajar en la parte dinámica del frontal web HTML?

a) NumPy

b) ActiveMQ

c) Bootstrap

d) TensorFlow

A

c) Bootstrap

63
Q

¿Qué método estático usaria para convertir una cadena JSON en un valor u objeto javascript?:

a) JSON.parse()

b) JSON.stringify()

c) let obj = JSON

d) let obj= New JSON

A

a) JSON.parse()

64
Q

Indique, de entre las siguientes afirmaciones, cuál es relativa a Ruby on Rails (RoR):

a) Es un lenguaje de programación creado por G. Ruby.

b) Es un framework de control de versiones escrito en el lenguaje Ruby.

c) Es un framework de desarrollo de aplicaciones web basado en el patrón MVC.

d) Es un servicio de .NET.

A

c) Es un framework de desarrollo de aplicaciones web basado en el patrón MVC.

65
Q

En una sentencia “if” en el lenguaje de programación Python, ¿cómo se identifica el bloque de código a ejecutar si la condición se cumple?

a) El bloque debe estar delimitado por llaves {}

b) El bloque debe estar delimitado por corchetes []

c) El bloque debe estar delimitado por corchetes ()

d) Cada línea del bloque debe estar precedida por el mismo número de espacios en blanco, con la misma sangría.

A

d) Cada línea del bloque debe estar precedida por el mismo número de espacios en blanco, con la misma sangría.

66
Q

Indique cuál de las siguientes característica de JavaScript es INCORRECTA:

a) Es imperativo y dinámico.

b) Proporciona funciones de segunda clase.

c) Es débilmente tipado.

d) Está basado en prototipos.

A

b) Proporciona funciones de segunda clase.

67
Q

Dentro de las tecnologías para el desarrollo web utilizadas en su unidad, se contempla utilizar javascript. ¿Qué valor devuelve la siguiente función javascript?

function prueba(){
    var i = 1;
    var j = 0;
    while (i<7) {
        j+=i;
        i+=2;
    }
    return j;
}

a) 2

b) 9

c) 6

d) 0

68
Q

Utilizando el lenguaje Python, a continuación se muestra la variable opositor, en la que se almacena el nombre y las puntuaciones de tres ejercicios por orden:
opositor = {‘nombre’: ‘Sandra Gomez”, ‘notas’: [27, 36, 12]}
¿Cómo asignaría a una variable llamada notaSegundoEjercicio el valor 36?

a) notaSegundoEjercicio = opositor.notas.Value.ltem2

b) notaSegundoEjercicio = opositor[‘notas’][1]

c) notaSegundoEjercicio = opositor.Key[notas].Value[1]

d) notaSegundoEjercicio = opositor(notas(2))

A

b) notaSegundoEjercicio = opositor[‘notas’][1]

69
Q

Se está valorando la realización de otros desarrollos de Machine Learning para Python y le preguntan cuál de las siguientes podría ser una libreria válida para ello.

a) Keras

b) Yum

c) Mahotas

d) Openpyd

70
Q

Dentro del código de la página web a la que acceden los opositores, se encuentra el siquiente codigo HTML:
< html>< body><h1 id="titulo">Primer ejercicio TAI</ h1></ body></ html>
¿Cuál es el código javascript para obtener la cadena “Primer ejercicio TAI”?

a) var titulo = document.getElementByld(‘titulo”).firstChild.nodeValue;

b) var titulo = document.titulo.InnerHTML;

c) var titulo = document.getElement(“h1”).InnerText;

d) var titulo = document.children[0].getValue();

A

a) var titulo = document.getElementByld(‘titulo”).firstChild.nodeValue;

71
Q

Entre los lenguajes contemplados para el nuevo sistema de información se encuentra Python, De entre los siguientes, ¿cuál es un framework para desarrollo web en Python?

a) Django

b) Keras

c) Pip

d) Numpy

72
Q

Se plantea la necesidad de incluir un campo de tipo select de tal manera que, si se elige la opción “SI” se habilite la entrada de datos en un campo tipo fecha, estando deshabilitado en caso contrario. ¿Qué evento del campo de tipo select utilizaría para recoger este comportamiento?

a) El evento onClick

b) El evento onSelection

c) El evento onChange

d) El evento onValue

A

c) El evento onChange

73
Q

El núcleo del desarrollo se pretende realizar en PHP, mediante el framework Laravel, ¿qué motor de persistencia de datos utiliza dicho framework?

a) Eloquent

b) SQLAIchemy

c) iBATIS

d) Web2py

A

a) Eloquent

74
Q

Indique qué realiza el siguiente fragmento de código PHP

<?php
    $psswd = substr(str_shuffle("0123abcd"), 0, Slength=5);
    echo $psswd;
?>

a) Genera y muestra una contraseña aleatoria formada por 8 caracteres donde los caracteres pueden repatirse.

b) Genera y muestra una contraseña aleatoria formada por 8 caracteres donde los caracteres no pueden repetirse.

c) Genera y muestra una contraseña aleatoria formada por 5 caracteres donde los caracteres pueden repetirse.

d) Genera y muestra una contraseña aleatoria formada por 5 caracteres donde los caracteres no pueden repetirse.

A

d) Genera y muestra una contraseña aleatoria formada por 5 caracteres dondo los caracteres no pueden repetirso.

75
Q

Durante el diseño del código PHP se encuentra declarado un array con valores. Se precisa almacenar la longitud del mismo. ¿Cómo lo haría?

a) $longitud = long($array):

b) $longitud = calculate($array);

c) $longitud = count($array):

d) $longitud = range($array):

A

c) $longitud = count($array):

76
Q

Si además está recorriendo un array y quiere mostrar los valores, ¿cuál sería la instrucción correcta?

a) echo “Posición “ + $i +”:” + Sarray[$i) . “;

b) echo “Posición “ & $1 &”: * & Sarray($]] & “\n’;

c) echo “Posición “. $i.”:”. $array[$i] . “\n”;

d) echo “Posición “.concat($i).concat(“: “) concat($array[$]) concat(“\n”);

A

c) echo “Posición “. $i.”:”. $array[$i] . “\n”;

77
Q

Se está planteando sustituir el framework de desarrollo. ¿Qué otro framework de PHP se podría utilizar?

a) Flask

b) Symfony

e) Django

d) Vaadin

A

b) Symfony

78
Q

Como requisito de seguridad, se desea que el campo contraseña esté formado por 6 o más caracteres y tenga al menos un numero, una letra en minúscula y una letra en mayúscula, sin tener un orden establecido. ¿Qué tipo de validación implementaría para soportario?

a) pattern=”([0-9]+[a-z])+[A-Z]).{6,}”

b) pattern=”([0-9][a-z][A-Z]).{6}”

c) pattern=”(0-9a-zA-Z).{6}”

d) pattern=”(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,}”

A

d) pattern=”(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,}”

79
Q

¿Qué comando utilizaría para crear un proyecto llamado ‘agencia’ con el framework Laravel?

a) new project agencia

b) php-composer create-project agencia

c) composer create-project prefer-dist laravel/laravel agencia

d) php archetype:create project agencia

A

c) composer create-project prefer-dist laravel/laravel agencia

80
Q

Indique la afirmación verdadera, ECMAScript 7 (también llamado ECMAScript 2016) añade:

a) Try/catch

b) Soporte para JSON.

c) Operador exponencial (**).

d) Expresiones regulares.

A

c) Operador exponencial (**).

81
Q

En PHP 7, dado el siguiente array: $monedas = array(“bitcoin”, “ada”, “ripple”), ¿qué sentencia permite mostrar el número de elementos que tiene?

a) echo str_len($monedas);

b) echo count($monedas);

c) echo size($monedas);

d) echo length($monedas);

A

b) echo count($monedas);

82
Q

Se ha adaptado el código PHP de la aplicación antigua (versión 5.4) a una versión actual. Observe el código PHP siguiente que se corresponde ya con el nuevo sistema:

<?php
trait Peticion (
     public function mostrarPeticion() (
             $descripcion = 'informal';
             echo "La petición es $descripcion.";
     )

     class Reivindicacion (
          use Peticion;
          public function mostrarPeticion() {
                S$descripcion = 'formal';
               echo "La petición es $descripcion.";
           )
}

$o = new Reivindicacio(n) ;
$o->mostrarPeticion () ;
?>

¿Qué resultado se obtendrá de su ejecución?

a) La petición es formal.

b) La petición es informal.

c) La petición es $descripcion.

d) Da un error de ejecución.

A

a) La petición es formal.

83
Q

JS. DOM. Selectores de elementos

A
  • document.getElementById(‘nodeType1’);
  • document.getElementsByTagName(‘section’);
  • document.querySelector(“#cols”); –> a través de un selector CSS, el primero que cumpla
  • document.querySelectorAll(“#cols”); –> a través de un selector CSS, todos los que cumplan
  • document.forms[0].nombre.value; –> Acceso directamente a formularios
84
Q

JS. Eventos

A
  • button.addEventListener(“click”, function()); –> Se añade el evento al elemento.
  • event.stopPropagation(); –> para el burbujeo cuando se puede aplicar al evento
  • Eventos
    • change –> Cuando el elemento cambia
    • select –> Cuando un texto que contiene el elemento es seleccionado
    • blur –> Cuando se pierde el foco sobre el elemento
    • focus –> Cuando se pone el foco sobre el elemento
    • click –> Cuando se clicka sobre el elemento
    • keypress –> Cuando se presiona una tecla del teclado. Devuelve caracter
    • keydown –> Código ascii de tecla presionada
    • keyup –> Código ascii de tecla soltada
    • input –> Se dispara cuando el valor (value) de un elemento < input>, < select>, o < textarea> ha sido cambiado.
85
Q

¿Cuales son los metodos del objeto Array en javascript para añadir y extraer elementos?

A

Sobre todo push y pop

86
Q

¿Cómo se transforma en javascript una cadena json a un objeto y con que funcion se hace lo contrario?

A

a. JSON.parse(cadena) –> paso a Objeto JS
b. JSON.stringify(objeto) –> paso a cadena JSON

87
Q

En Javascript/DOM, ¿Conoces algun metodo para obtener un elemento(s) del DOM en base a su Id? ¿Y en base a un valor de algun atributo dado?

A
  1. document.getElementById(id)
  2. document.querySelector(selector de tipo atributo) y document.querySelectorAll(selector de tipo atributo)
88
Q

Dos formas de realizar peticiones HTTP asincronas desde el cliente en Javascript

A
  1. API AJAX (objeto XMLHttpRequest)
  2. API Fetch

NOTA: Las promesas o el async/await nos pueden servir para “envolver” estas llamadas asincronas

89
Q

Utilidad del metodo preventDefault sobre un DOMEvent

A

Metodo que usamos si queremos “cancelar” el comportamiento de ese evento (siempre que el evento sea CANCELABLE)

NOTA: stopPropagation es para evitar el burbujeo a los “padres”

90
Q

Utilidad de la libreria Jasmine

A

Pruebas unitarias de codigo Javascript

91
Q

¿En que consiste el operador “nave espacial” en PHP?

A

Operador de comparacion (<=>)

A <=> B

  • 1 Si A es mayor que B
  • 0 Si A y B son iguales
  • -1 Si A es menor que B
92
Q

¿Cual es el gestor de dependencias en PHP?

A

composer

ej. composer require <nombre-paquete></nombre-paquete>

93
Q

En php, ¿en que consisten los traits?

A

Elementos de programacion que nos permiten reutilizar codigo sin tener que usar MAL la HERENCIA

94
Q

¿Como se llama al ORM de PHP/Laravel?

95
Q

¿Como se define un constructor en PHP y en Python?

A
  1. __construct (esto es un magic method)
  2. def __init__(self): …
96
Q

¿Que representan las siglas del stack MEVN?

A
  • MongoDB (BBDD NoSQL Documental/JSON)
  • Express (Framework Web para Javascript)
  • Vue (Framework “MVC” Javascript de Front)
  • Node (Runtime de Javascript)
97
Q

ORM en Javascript

A
  • Sequelize
  • Bookshelf
  • Objection.js
  • TypeORM
  • Mongoose