Please enable JavaScript to use CodeHS

Documentación sobre JavaScript

Básicos

Impresión en la consola

// Utilizando la función println() se imprimirá el texto y se creará un salto de línea
// Ejemplo de uso de println()
println("Hola");
println("mundo");
// Resultado:
// Hola
// mundo.

// El uso de la sentencia print() NO crea un salto de línea
// Ejemplo de uso de print()
print("Hola mundo. ");
print("¿Cómo estás?");
// Resultado:
// Hola mundo. ¿Cómo estás?

// También puedes imprimir en la consola utilizando console.log() (incluye salto de línea)
// Ejemplo:
console.log("¡Hola mundo!");

Variables

// Declarar una variable
var myVarName;

// Inicializar una variable
var myVarName = 5;

// Asignar a una variable existente
myVarName = 10;

// Imprimir una variable
println(myVarName);
println("El valor es: " + myValue);

// Las variables también se pueden declarar e inicializar utilizando la palabra clave "let
let myVarName;
let myVarName = 5;

// Si una variable no va a cambiar de valor, es mejor utilizar la palabra clave 'const'.
/*
 * Las variables definidas con const no se pueden volver a declarar.
 * Las variables definidas con const no se pueden reasignar.
 * A las variables definidas con const se les debe asignar un valor cuando se declaran
 */
// Ejemplo:
const PI = 3.141592653589793;
PI = 5; // Esto dará un error

Entradas del usuario

// Leer una cadena
// Las cadenas son una serie de caracteres - ej: Hola Mundo
var str = readLine(prompt);

// Leer un número entero
// Los enteros son números sin punto decimal - ej: 3
var num = readInt(prompt);

// Leer un flotante
// Los flotantes son números con punto decimal - ej: 3,14
var cost = readFloat(prompt);

// Leer un booleano
// Los booleanos son verdadero/falso
var bool = readBoolean(prompt);

// Debes sustituir la palabra prompt por
// la pregunta que quieras hacer. Por ejemplo
var name = readLine("¿Cuál es tu nombre? ");
var age = readInt("¿Cuál es tu edad? ");
var finishedWork = readBoolean("¿Has terminado tu trabajo? ");

Entradas del usuario asíncronas


/* Además de los métodos de entrada bloqueantes que reciben la entrada mediante
popup, hay métodos de entrada asíncronos adicionales. readLineAsync,
readIntAsync, readFloatAsync y readBooleanAsync son funciones no bloqueantes
que se pueden utilizar en combinación con la palabra clave `await
recibir información de forma asíncrona.
*/

let name = await readLineAsync("¿Cómo te llamas? ");
console.log("Encantado de conocerte, " + name);
        
Para saber más sobre las entradas del usuario asíncronas, consulta este tutorial.

Matemáticas

// Operadores:
+ Suma
- Sustracción
* Multiplicación
/ División
** Exponenciación
% Modulus (Resto)
() Paréntesis (Para el orden de las operaciones)

// Ejemplos
var z = x + y
var w = x * y;

// Incrementa (añade uno)
x++

// Disminuye (resta uno)
x--

// Atajos
x = x + y; x += y;
x = x - y; x -= y;
x = x * y; x *= y;
x = x / y; x /= y;

// Exponenciación
var squared = 5 ** 2;
println(squared); // imprime 25

// Modulus
var z = 10 % 4 // 2 * 4 = 8; 10 - 8 = 2
println(z) // imprime 2

// Valor absoluto
var abs = Math.abs(x);

// Raíz cuadrada
var sqrt = Math.sqrt(x);

// Redondeo
// Math.round() se puede utilizar para redondear números
var PI = 3.14
var roundedPi = Math.round(pi);
println(roundedPi); // imprime: 3

var goldenRatio = 1.618
var roundedGoldenRatio = Math.round(goldenRatio);
println(roundedGoldenRatio); // se imprime: 2

// División por el suelo
// Math.floor() se puede utilizar para realizar la división por el suelo
// división por el suelo. Con la división por el suelo, sólo se devuelve
// la parte entera del cociente.

// Por ejemplo, 5/2 es 2.5, pero con la división por el suelo,
// el resultado es 2 y se descarta el 0.5.
var result = Math.floor(5/2);
println(result); // imprime: 2

// Geometría
// Ten en cuenta que la entrada está en radianes, no en grados

Math.sin(radians); // Devuelve un valor entre -1 y 1
Math.cos(radians); // Devuelve un valor entre -1 y 1
Math.tan(radians); // Devuelve el valor

Números aleatorios

// Número entero aleatorio entre bajo y alto
Randomizer.nextInt(low, high);
Randomizer.nextBoolean();
Randomizer.nextFloat(low, high);
Randomizer.nextColor();

var roll = Randomizer.nextInt(1,6);

var color = Randomizer.nextColor();

Cadenas

// str.length
// devuelve la longitud de una cadena

// Ejemplo
var str = "hello";
var len = str.length; // igual a 4

// str.indexOf(búsqueda)
// devuelve el primer índice de la búsqueda
// o -1 si no se encuentra. Distingue entre mayúsculas y minúsculas.

//Ejemplos
var str = "hello";
var pos1 = str.indexOf("l"); // devuelve 2

var pos2 = str.indexOf("H"); // devuelve -1

// str.substring(start);
// devuelve una subcadena que incluye
// carácter de inicio hasta el final de la
// cadena

//Ejemplos
var str = "hello";
var sub1 = str.substring(1); // equivale a "ello"
var sub2 = str.substring(3); // igual a "lo"

// str.substring(inicio, fin);
// devuelve una subcadena que incluye el carácter
// el carácter del principio, pero sin incluir
// el carácter del final

//Ejemplos
var str = "hello";
var sub1 = str.substring(0,2); // equivale a "he"
var sub2 = str.substring(1,4); // equivale a "ell"

Funciones

// Las funciones pueden tomar valores, llamados parámetros.
// La siguiente función recibe un parámetro llamado
// 'entrada' y lo imprime.
function printText(input) {
    println(input);
}

// Las funciones también pueden devolver un valor.
// La siguiente función toma un valor,
// le suma dos y lo devuelve.
function addTwo(number) {
	return number + 2;
}

Estructuras de control

Booleanos

// Un booleano es verdadero o falso
var myBoolean = true;

var anotherBoolean = false;

var result = readBoolean("¿Pregunta? ");

// Operador Not
var x = !y; // x obtiene lo contrario de y

// Operador And
var andExp = x && y;

// Operador or
var orExp = x || y;

// ¡Puedes combinar muchos booleanos!
var boolExp = x && (y || z);

Operadores lógicos

// Los operadores lógicos devuelven booleanos (valores true/false)

x && y // Operador AND -- verdadero si AMBOS x e y son verdaderos
x | y // Operador OR -- verdadero si x O y son verdaderos
! x // Operador NOT -- verdadero si x es false

// Operadores lógicos en declaraciones if
if(x && y){
	println("x e y son ambos true");
}

if(x || y){
	println("x y/o y son true");
}

if(!x && y){
    println("x es false e y es true");
}

Operadores de comparación

// Los operadores de comparación devuelven booleanos (valores true/false)

x == y // ¿es x igual a y?
x != y // x no es igual a y
x > y // x es mayor que y
x >= y // si x es mayor o igual que y
x < y // es x menor que y
x <= y // es x menor o igual que y

// Operadores de comparación en declaraciones if
if(x == y){
	println("x e y son iguales");
}

if(x > 5){
	println("x es mayor que 5");
}

Declaraciones if, If/Else, If/Else If/Else

if(BOOLEAN_EXPRESSION){
	// código a ejecutar if true
}

if(BOOLEAN_EXPRESSION){
	// código si es true
} else {
	// código if false
}

if(x < 0){
	println("x es negativo");
}

if(color == "red" || color == "blue" || color == "yellow"){
	println("Color primario");
} else {
	println("No es un color primario.");
}

// Puedes utilizar else if si tienes varias
// condiciones, pero sólo debe ocurrir una.
if(condition_1){

} else if(condition_2) {

} else if(condition_3) {

} else {

}


// Siempre puedes escribirlos usando anidados
// if/else. Por ejemplo
if(condition_1){
	// el código se ejecuta si la condición 1 es true
} else {
	if(condition_2){
		// si la condición 2 es true
	} else {
		// y aquí si la condición 2 es false
	}
}

Para Loops

var COUNT = 5;

for(var i = 0; i < COUNT; i++){
	/* Repite el código entre los corchetes 5 veces,
	 * ya que la variable COUNT es 5. */
}

// Imprime los números del 0 al 9
for(var i = 0; i < 10; i++){
	println(i);
}

Bucles while

while(boolean expression){
	/* Repite el código entre paréntesis while
	 * 'expresión booleana' es true */
}

// Cuenta atrás de 15 a 10
var i = 15
while(i > 9){
	println(i);
	i--;
}
// Este es un formato de bucle y medio
while(true){
	// código
	if(condition){
		break;
	}
}

Estructuras de datos

Arrays

// Crear un array vacío
var arr = [];

// Crear un array con valores
var arr = [1, 2, 4];

// Un array puede tener cualquier tipo
var arr = [4, "hola", x];

// Accede a un elemento de un array
var elem = arr[i];

var firstElem = arr[0];

// Establecer un elemento en un array
arr[4] = 9;

// Recorrer un array en bucle
for(var i = 0; i < arr.length; i++){
	var cur = arr[i];
	// procesa cur
}

// longitud de un array
var length = arr.length;

// Añadir a un array
arr.push(elem);

// Eliminar el último elemento del array
var last = arr.pop();

// Encontrar el índice de un elemento en una lista
var index = arr.indexOf(5);

// Eliminar un elemento de una lista en el índice i
arr.remove(i)

Mapas/Objetos

// Literal de objeto
var obj = {
	name: "Jeremy"
	color: "blue"
};

// Los objetos/mapas tienen una colección de pares clave, valor

// Establece un valor
obj["Jeremy"] = "123-4567";

// Obtener un valor para una clave
var phone = obj["Jeremy"];

// Haz un bucle sobre un objeto
for(var key in obj){
    var val = obj[key];
	// procesar clave y val
}

Conjuntos

// Crea un nuevo conjunto llamado "newSet".
var newSet = new Set();

// Añadir a un conjunto
newSet.add(5);

// ¿Contiene un valor un conjunto?
newSet.contains(5); // devuelve un booleano

// Número de elementos del conjunto
var count = newSet.size; // devuelve un entero

// Crea un nuevo conjunto llamado "conjuntoA
var setA = new Set();
// Añade 2 números al conjunto
    setA.add(1);
    setA.add(2);
// Crea un nuevo conjunto llamado "conjuntoB".
var setB = new Set();
// Añade 2 números al conjunto
    setB.add(2);
    setB.add(3);

// Llama a la función intersecar en "conjuntoA" y pásale "conjuntoB", almacena el
// resultante en una nueva variable llamada "conjuntomutuo".
var mutualSet = setA.intersect(setB);

Rejillas

// Crear una cuadrícula llamada "nuevaCuadrícula
var newGrid = new Grid(rows, columns);

// Obtener un valor en una cuadrícula
var elem = newGrid.get(row, col);

// Establecer un valor en una cuadrícula
newGrid.set(row, col, val);

// Obtener dimensiones
var rows = newGrid.numRows();
var cols = newGrid.numCols();

// Es un par de filas y columnas dentro de los límites
newGrid.inBounds(row, col);

// Establece todos los valores de la cuadrícula al valor inicial
newGrid.init(0); // establece todos los valores de la cuadrícula en 0

// Inicializa una cuadrícula a partir de un array
newGrid.initFromArray([
	[6, 3, 2], // fila 0
	[2, 5, 1], // 1ª fila
	[4, 3, 9], // 2ª fila
	[1, 5, 1] // 3ª fila
]);
¿Quieres más? Consulta nuestro ¡documentación completa de la Biblioteca CodeHS!