Skip to main content
Categories
Reto

JavaScript desde 0 – día 2

Listado de todos los días del reto: A 30 days of JavaScript programming challenge

Este artículo está basado en: Day – 02

Datos primitivos

  1. Numbers – Integers, floats
  2. Strings
  3. Booleans
  4. Null
  5. Undefined

Datos no-primitivos

  1. Objeto
  2. Funciones
  3. Arrays

Operaciones con números

Usando Math

  • Redondear al más cercano: Math.round(9.81) //10
  • Redondear abajo: Math.floor(PI) //3
  • Redondear arriba: Math.ceil(PI) //4
  • Mínimo valor: Math.min(-5, 3, 20, 4,5, 10) //-5
  • Máximo valor: Math.max(-5, 3, 20, 4,5, 10) //20
  • Número aleatorio: Math.random() // 0 to 0.999999
  • Aleatorio entre 0 y 10: Math.floor( Math.random() * 11)
  • Valor absoluto: Math.abs(-10) //10
  • Raíz cuadrada: Math.sqrt(100) //10
  • Potencia: Math.pow(3, 2) //9

Operaciones con texto: strings

  • Concatenación con el operador: +
  • Textos largos: usar \ al final de cada línea antes del salto de línea
  • Escapar algunos caracteres:
    • nueva línea: \n
    • Tabulador (8 espacios): \t
    • Barra slash: \\
    • Comillas: \’ o \”
  • Template strings: `String literal text ${expression}`

Todo en JavaScript es un objeto, por lo que los strings también lo son y por ello disponen de una serie de métodos, a los cuales se accede con solo añadir a la variable que contiene un string un punto y el nombre del método o función a ejecutar sobre el mismo.

El primer indice de un array de datos, incluido el string como tal es el número 0.

Métodos disponibles:

// Ejemplo
let stringName = "JavaScript" 
  • Longitud del texto: stringName.length //10
  • Primer carácter: stringName[0] //J
  • Último carácter: stringName[ stringName.length – 1 ] //t
  • Mayúsculas: stringName.toUpperCase() //JAVASCRIPT
  • Minúsculas: stringName.toLowerCase() //javascript
  • Extraer desde posición 4 un total de 6 letras:
    • stringName.substr(4,6) //Script
  • Extraer desde posición 0 hasta posición 4 :
    • stringName.substring(0,4) // Java
  • Dividir por elemento dado:
    • stringName.split(”) //[‘J’, ‘a’, ‘v’, ‘a’, ‘S’, ‘c’, ‘r’, ‘i’, ‘p’, ‘t’]
  • Borra espacios al inicio y final: stringName.trim() //JavaScript
// Ejemplo
let stringName = "30 Days Of JavaScript" 
  • Busca si existe el elemento:
    • stringName.includes(‘Days’) //true
    • stringName.includes(‘days’) //false
  • Remplaza un elemento por otro:
    • stringName.replace(’30’,’60’) //60 Days Of JavaScript
  • Valor de la posición dada: stringName.charAt(1) //0
  • Idem anterior devolviendo ASCII:
    • stringName.charCodeAt(3) //D ASCII number is 51
  • Busca elemento y devuelve primera posición o -1 si no encuentra:
    • stringName.indexOf(‘D’) //3
    • stringName.indexOf(‘days’) //-1
  • Idem anterior pero devuelve la última posición si encuentra:
    • stringName.lastIndexOf(‘Days’) //6
    • stringName.lastIndexOf(‘days’) //-1
  • Unir elementos: stringName.concat( ‘ – ‘, stringName) // 30 Days Of JavaScript – 30 Days Of JavaScript
  • Comprueba si empieza por: stringName.startsWith(’30’) //true
  • Comprueba si termina por: stringName.endsWith(‘T’) //false
  • Devuelve indice del primer elemento encontrado:
    • stringName.search(‘Of’) //8
  • Devuelve array tras búsqueda con expresiones regulares:
    • stringName.match(‘/Days/’) // [‘Days’]
  • Repetir elemento: newstringName = ‘JS’;
    • newstringName.repeat(6) // JSJSJSJSJSJS

Verificación de tipos de datos y casting

  • Conocer tipo de dato: typeof num //number
  • Convertir texto a entero:
    • parseInt( num )
    • Number( num )
    • +num
  • Convertir texto a decimal:
    • parseFloat( num )
    • Number( num )
    • +num
  • Decimal a entero: parseInt( num )

Ejercicios para practicar resueltos en el vídeo:

Nivel 1

  1. Declara una variable y asígnale a un valor inicial ’30 Days Of JavaScript’.
  2. Imprime la cadena en la consola del navegador usando console.log()
  3. Imprime la longitud de la cadena en la consola del navegador con el método length
  4. Cambie toda la cadena a letras mayúsculas usando el método toUpperCase()
  5. Cambie toda la cadena a letras minúsculas usando el método toLowerCase()
  6. Corta la primera palabra del cadena usando el método substr() o substring()
  7. Corta la frase Days Of JavaScript de 30 Days Of JavaScript.
  8. Verifica si la cadena contiene una palabra Script usando el método includes()
  9. Divide la cadena en una matriz usando split( )
  10. Separa la cadena 30 Days Of JavaScript por espacio utilizando el método split()
  11. ‘Facebook, Google, Microsoft, Apple, IBM, Oracle, Amazon’ separa la cadena por comas y cámbiala a una matriz.
  12. Cambia 30 Days Of JavaScript a 30 Days Of PHP usando el método replace().
  13. ¿Cual es el carácter en el índice 15 en la cadena ’30 Days Of JavaScript’ ? Utiliza el método charAt().
  14. ¿Cuál es el código de caracteres de J en la cadena ’30 Days Of JavaScript’  usando charCodeAt()?
  15. Usa indexOf para determinar la posición de la primera aparición de a en 30 Days Of JavaScript
  16. Usa lastIndexOf para determinar la posición de la última aparición de a en 30 Days Of JavaScript
  17. Usa indexOf para encontrar la posición de la primera aparición de la palabra because en la siguiente oración: ‘You cannot end a sentence with because because because is a conjunction’
  18. Usa lastIndexOf para encontrar la posición de la última aparición de la palabra because en la siguiente oración: ‘You cannot end a sentence with because because because is a conjunction’
  19. Usa search para encontrar la posición de la primera aparición de la palabra because en la siguiente oración: ‘You cannot end a sentence with because because because is a conjunction’
  20. Usa trim() para eliminar si hay espacios en blanco al principio y al final de una cadena. Por ejemplo, ‘ 30 Days Of JavaScript ‘.
  21. Usa el método startsWith() con la cadena 30 Days Of JavaScript para que el resultado sea verdadero
  22. Usa el método endsWith() con la cadena 30 Days Of JavaScript para que el resultado sea verdadero
  23. Usa el método match() para encontrar todas las a en 30 días de JavaScript
  24. Usa concat() y combina ’30 Days of’ y ‘JavaScript’ en una sola cadena: ’30 Days Of JavaScript’
  25. Use el método repeat() para imprimir ’30 Days Of JavaScript’ 2 veces

Nivel 2

  1. Usando console.log() imprima la siguiente declaración. ‘The quote ‘There is no exercise better for the heart than reaching down and lifting people up.’ by John Holmes teaches us to help to one another.’
  2. Usando console.log() imprima la siguiente cita de Madre Teresa. ‘Love is not patronizing and charity isn’t about pity, it is about love. Charity and love are the same — with charity you give love, so don’t just give money but reach out your hand instead.’
  3. Comprueba si el tipo de ’10’ es exactamente igual a 10. Si no es así, hágalo exactamente igual.
  4. Comprueba si parseInt (‘9.8’) es igual a 10, si no, hágalo exactamente igual a 10.
  5. Verifique si ‘on’ se encuentra tanto en python como en jargon.
  6. Verifique si jargon está en la oración. ‘I hope this course is not full of jargon’
  7. Genera un número aleatorio entre 0 y 100 inclusive.
  8. Genera un número aleatorio entre 50 y 100 inclusive.
  9. Genera un número aleatorio entre 0 y 255 inclusive.
  10. Acceda a los caracteres de cadena ‘JavaScript’ utilizando un número aleatorio.
  11. Usa console.log() y caracteres de escape para imprimir el siguiente patrón.
    • 1 1 1 1 1
    • 2 1 2 4 8
    • 3 1 3 9 27
    • 4 1 4 16 64
    • 5 1 5 25 125
  12. Usa substr para cortar la frase because because because en la siguiente oración: ‘You cannot end a sentence with because because because is a conjunction’

Nivel 3

  1. Cuenta la cantidad de palabras de love en esta oración. ‘ Love is the best thing in this world. Some found their love and some are still looking for their love.’
  2. Usa match( ) para contar el número de because’s en la siguiente oración: ‘You cannot end a sentence with because because because is a conjunction’
  3. Limpia el siguiente texto y encuentra la palabra más frecuente (sugerencia, use replace y regular express). ‘%I $am@% a %tea@cher%, &and& I lo%#ve %tea@ching%;. There $is nothing; &as& mo@re rewarding as educa@ting &and& @emp%o@wering peo@ple. ;I found tea@ching m%o@re interesting tha@n any other %jo@bs. %Do@es thi%s mo@tivate yo@u to be a tea@cher!? %Th#is 30#Days&OfJavaScript &is also $the $result of &love& of tea&ching’
  4. Calcula el ingreso anual total de la persona extrayendo los números del siguiente texto. ‘He earns 5000 euro from salary per month, 10000 euro annual bonus, 15000 euro online courses per month.’

Listado de todos los días del reto: A 30 days of JavaScript programming challenge