Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 

Repository files navigation

Comparative Programming Languages (Javascript, TypeScript, Python). Rapid Guide

Descripción

Tabla de contenidos

Referencias útiles

Resumen

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 No
Compilación No 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

Variables y Tipos de Datos

Ver en: PythonTutor | Repl.it | TypeScript Playground

JavaScript

// 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

// 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

# Python es de tipado dinámico
nombre = "Juan"
edad = 25
es_estudiante = True
lista_ejemplo = [1, 2, 3]
diccionario_ejemplo = {"nombre": "Maria", "edad": 30}

Estructuras de Control

Ver en: PythonTutor | Repl.it | TypeScript Playground

JavaScript

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)
}

TypeScript

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)
}

Python

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)

Funciones

Ver en: PythonTutor | Repl.it | TypeScript Playground

JavaScript

function saludar(nombre) {
  return `Hola, ${nombre}!`
}

let mensaje = saludar('Ana')
console.log(mensaje)

TypeScript

function saludar(nombre: string): string {
  return `Hola, ${nombre}!`
}

let mensaje: string = saludar('Ana')
console.log(mensaje)

Python

def saludar(nombre):
    return f"Hola, {nombre}!"

mensaje = saludar("Ana")
print(mensaje)

Objetos

Ver en: PythonTutor | Repl.it | TypeScript Playground

JavaScript

let persona = {
  nombre: 'Carlos',
  edad: 28,
  saludar: function () {
    console.log(`Hola, soy ${this.nombre}`)
  },
}

console.log(persona.nombre)
persona.saludar()

TypeScript

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()

Python

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()

Referencias

About

Comparative Programming Languages Essentials (Javascript, TypeScript, Python). Rapid Guide

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors