- Comparing Javascript and Python - Lists, Arrays and Hashed Lists
- Comparing Javascript and Python - Control Structures
- Comparing Javascript and Python - Classes
- component-party
- Javascript Language overview
- Angular Oficial tutorial
Ver en: PythonTutor | Repl.it | TypeScript Playground
| Características | Javascript | TypeScript | Python | |
|---|---|---|---|---|
| Tipado Dinámico |
let variable = 10 |
let variable: number = 10 |
variable = 10 | |
| Tipado Estático | No | Sí | No | |
| Compilación | No | Sí | No | |
| Declaración de Variables |
var x = 5 |
let x: number = 5 |
x = 5 | |
| Funciones Anónimas |
;() => {
return 42
} |
;() => {
return 42
} |
lambda: 42 | |
| Manejo de Errores |
try {
/* código */
} catch (e) {
/* manejo de error */
} |
try {
/* código */
} catch (e) {
/* manejo de error */
} |
try:
# código
except Exception as e:
# manejo de error | |
| Iteración sobre Arrays |
for (let i of array) {
/* código */
} |
for (let i of array) {
/* código */
} |
for i in array:
# código | |
| Uso de Promesas |
fetch(url)
.then((response) => response.json())
.then((data) => console.log(data)) |
fetch(url)
.then((response) => response.json())
.then((data) => console.log(data)) |
import requests;
response = requests.get(url);
data = response.json();
print(data) | |
| Uso de Clases |
class Persona {
constructor(nombre) {
this.nombre = nombre
}
saludar() {
console.log('Hola, ' + this.nombre)
}
} |
class Persona {
constructor(public nombre: string) {}
saludar() {
console.log('Hola, ' + this.nombre)
}
} |
class Persona:
def __init__(self, nombre):
self.nombre = nombre def saludar(self):
print(f'Hola, {self.nombre}') | |
| Manejo de Strings |
let nombre = 'John'
let mensaje = `Hola, ${nombre}!` |
let nombre: string = 'John'
let mensaje: string = `Hola, ${nombre}!` |
nombre = 'John';
mensaje = f'Hola, {nombre}!' | |
| Manejo de Arrays |
let array = [1, 2, 3]
array.push(4) |
let array: number[] = [1, 2, 3]
array.push(4) |
array = [1, 2, 3];
array.append(4) | |
| Manejo de Objetos |
let persona = {
nombre: 'Ana',
edad: 30,
} |
let persona: { nombre: string; edad: number } = {
nombre: 'Ana',
edad: 30,
} |
persona = {'nombre': 'Ana', 'edad': 30} | |
| Uso de Módulos | Antes de ES6, a través de convenciones. En ES6 y posteriores, se introdujeron módulos. | Sí, mediante `import` y `export`. | Sí, mediante `import` y `from`. | |
| Manejo de Asincronía |
setTimeout(() => {
console.log('Hola')
}, 1000) |
setTimeout(() => {
console.log('Hola')
}, 1000) |
import time;
time.sleep(1);
print('Hola') | |
| Comprensión de Listas | No | No |
[x**2 for x in range(10)]` | |
| Manejo de Diccionarios |
let diccionario = { clave: 'valor' } |
let diccionario: { [clave: string]: string } = {
clave: 'valor',
} |
diccionario = {'clave': 'valor'} | |
| Manejo de Sets | No | No |
conjunto = {1, 2, 3} | |
| Decoradores | No | Sí, mediante el uso de `@ | ||
| Manejo de Nulos y Undefines |
let x = null |
let x: null = null |
x = None | |
| Export e Import |
// Export
export const variable = 42
// Import
import { variable } from './archivo' |
// Export
export const variable: number = 42
// Import
import { variable } from './archivo' |
# Export
variable = 42
# Import
from archivo import variable | |
| Operador Condicional (Ternario) |
let resultado = condicion ? 'verdadero' : 'falso' |
let resultado: string = condicion ? 'verdadero' : 'falso' |
resultado = 'verdadero' if condicion else 'falso' | |
| Funciones Flecha (Arrow Functions) |
const sumar = (a, b) => a + b |
const sumar = (a: number, b: number): number => a + b |
sumar = lambda a, b: a + b | |
| Parámetros Predeterminados (Default Values) |
function saludar(nombre = 'Usuario') {
console.log(`Hola, ${nombre}!`)
} |
function saludar(nombre: string = 'Usuario'): void {
console.log(`Hola, ${nombre}!`)
} |
def saludar(nombre='Usuario'):
print(f'Hola, {nombre}!') | |
| Template Literals |
let nombre = 'John'
let mensaje = `Hola, ${nombre}!` |
let nombre: string = 'John'
let mensaje: string = `Hola, ${nombre}!` |
nombre = 'John'
mensaje = f'Hola, {nombre}!' | |
| Propiedades Abreviadas |
let nombre = 'John'
let edad = 30
let persona = { nombre, edad } |
let nombre: string = 'John'
let edad: number = 30
let persona: { nombre: string; edad: number } = {
nombre,
edad,
} |
nombre = 'John'
edad = 30
persona = {'nombre': nombre, 'edad': edad} | |
| La Desestructuración |
let persona = { nombre: 'John', edad: 25 }
let { nombre, edad } = persona |
let persona: { nombre: string; edad: number } = {
nombre: 'John',
edad: 25,
}
let { nombre, edad } = persona |
persona = {'nombre': 'John', 'edad': 25}
nombre, edad = persona['nombre'], persona['edad'] | |
| Métodos de Array: map, filter, find |
let numeros = [1, 2, 3, 4, 5]
let cuadrados = numeros.map((num) => num ** 2)
let pares = numeros.filter((num) => num % 2 === 0)
let encontrado = numeros.find((num) => num === 3) |
let numeros: number[] = [1, 2, 3, 4, 5]
let cuadrados: number[] = numeros.map((num) => num ** 2)
let pares: number[] = numeros.filter((num) => num % 2 === 0)
let encontrado: number | undefined = numeros.find((num) => num === 3) |
numeros = [1, 2, 3, 4, 5]
cuadrados = list(map(lambda num: num ** 2, numeros))
pares = list(filter(lambda num: num % 2 == 0, numeros))
encontrado = next((num for num in numeros if num == 3), None) | |
| Sintaxis Spread |
let array1 = [1, 2, 3]
let array2 = [...array1, 4, 5] |
let array1: number[] = [1, 2, 3]
let array2: number[] = [...array1, 4, 5] |
array1 = [1, 2, 3]
array2 = [*array1, 4, 5] | |
| Operador Rest |
function sumar(...numeros) {
return numeros.reduce((total, num) => total + num, 0)
} |
function sumar(...numeros: number[]): number {
return numeros.reduce((total, num) => total + num, 0)
} |
def sumar(*numeros):
return sum(numeros) | |
| Expresiones Regulares |
const regex = /patrón/
const resultado = regex.test('cadena') |
const regex: RegExp = /patrón/
const resultado: boolean = regex.test('cadena') |
import re
regex = re.compile("patrón")
resultado = bool(regex.match("cadena")) | |
| Operaciones de Cadena |
const cadena = ' Hola, Mundo! '
const sinEspacios = cadena.trim()
const reemplazada = cadena.replace('Mundo', 'Universo')
const contiene = cadena.includes('Hola')
const indice = cadena.indexOf('Mundo')
const mayusculas = cadena.toUpperCase()
const minusculas = cadena.toLowerCase()
const subcadena = cadena.substring(5, 9)
const longitud = cadena.length |
const cadena: string = ' Hola, Mundo! '
const sinEspacios: string = cadena.trim()
const reemplazada: string = cadena.replace('Mundo', 'Universo')
const contiene: boolean = cadena.includes('Hola')
const indice: number = cadena.indexOf('Mundo')
const mayusculas: string = cadena.toUpperCase()
const minusculas: string = cadena.toLowerCase()
const subcadena: string = cadena.substring(5, 9)
const longitud: number = cadena.length |
cadena = " Hola, Mundo! "
sin_espacios = cadena.strip()
reemplazada = cadena.replace("Mundo", "Universo")
contiene = "Hola" in cadena
indice = cadena.find("Mundo")
mayusculas = cadena.upper()
minusculas = cadena.lower()
subcadena = cadena[5:9]
longitud = len(cadena) | |
| Sort |
const array = [3, 1, 4, 1, 5, 9, 2, 6, 5]
const sortedArray = array.sort() |
const array: number[] = [3, 1, 4, 1, 5, 9, 2, 6, 5]
const sortedArray: number[] = array.sort() |
array = [3, 1, 4, 1, 5, 9, 2, 6, 5]
sorted_array = sorted(array) | |
| Sort con Números |
const array = [3, 1, 4, 1, 5, 9, 2, 6, 5]
const sortedArray = array.sort((a, b) => a - b) |
const array: number[] = [3, 1, 4, 1, 5, 9, 2, 6, 5]
const sortedArray: number[] = array.sort((a, b) => a - b) |
array = [3, 1, 4, 1, 5, 9, 2, 6, 5]
sorted_array = sorted(array) |
Más
Ver en: PythonTutor | Repl.it | TypeScript Playground
// JavaScript no tiene tipos de datos estáticos
let nombre = 'Juan'
let edad = 25
let esEstudiante = true
let arrayEjemplo = [1, 2, 3]
let objetoEjemplo = { nombre: 'Maria', edad: 30 }// TypeScript tiene tipos de datos estáticos
let nombre: string = 'Juan'
let edad: number = 25
let esEstudiante: boolean = true
let arrayEjemplo: number[] = [1, 2, 3]
let objetoEjemplo: { nombre: string; edad: number } = {
nombre: 'Maria',
edad: 30,
}# Python es de tipado dinámico
nombre = "Juan"
edad = 25
es_estudiante = True
lista_ejemplo = [1, 2, 3]
diccionario_ejemplo = {"nombre": "Maria", "edad": 30}Ver en: PythonTutor | Repl.it | TypeScript Playground
if (edad >= 18) {
console.log(`${nombre} es mayor de edad`)
} else {
console.log(`${nombre} es menor de edad`)
}
for (let i = 0; i < 5; i++) {
console.log(i)
}if (edad >= 18) {
console.log(`${nombre} es mayor de edad`)
} else {
console.log(`${nombre} es menor de edad`)
}
for (let i: number = 0; i < 5; i++) {
console.log(i)
}if edad >= 18:
print(f"{nombre} es mayor de edad")
else:
print(f"{nombre} es menor de edad")
for i in range(5):
print(i)Ver en: PythonTutor | Repl.it | TypeScript Playground
function saludar(nombre) {
return `Hola, ${nombre}!`
}
let mensaje = saludar('Ana')
console.log(mensaje)function saludar(nombre: string): string {
return `Hola, ${nombre}!`
}
let mensaje: string = saludar('Ana')
console.log(mensaje)def saludar(nombre):
return f"Hola, {nombre}!"
mensaje = saludar("Ana")
print(mensaje)Ver en: PythonTutor | Repl.it | TypeScript Playground
let persona = {
nombre: 'Carlos',
edad: 28,
saludar: function () {
console.log(`Hola, soy ${this.nombre}`)
},
}
console.log(persona.nombre)
persona.saludar()type Persona = {
nombre: string
edad: number
saludar: () => void
}
let persona: Persona = {
nombre: 'Carlos',
edad: 28,
saludar: function () {
console.log(`Hola, soy ${this.nombre}`)
},
}
console.log(persona.nombre)
persona.saludar()class Persona:
def __init__(self, nombre, edad):
self.nombre = nombre
self.edad = edad
def saludar(self):
print(f"Hola, soy {self.nombre}")
persona = Persona("Carlos", 28)
print(persona.nombre)
persona.saludar()