¡Hola! Si quieres aprender las diferencias entre Python y JavaScript, este artículo es para ti.

Estos lenguajes de programación son muy populares y poderosos, pero tienen diferencias claves. Las veremos en detalle en este artículo.

En este artículo aprenderás:

  • Las diversas aplicaciones de Python y JavaScript.
  • Las diferencias claves en la sintaxis y funcionalidad de Python y JavaScript.

¡Comencemos!

🔹 Python vs. JavaScript: Aplicaciones

Comenzaremos con un breve resumen de sus aplicaciones.

image-187
Logo de Python (izquierda) y logo de JavaScript (derecha)

Python

Python se ha convertido en una herramienta esencial en prácticamente todas las aplicaciones científicas del mundo por su poder y versatilidad. Es un lenguaje de programación que permite utilizar distintos paradigmas de programación.

Es ampliamente usado en aplicaciones científicas y especializadas, incluyendo ciencia de datos, inteligencia artificial, aprendizaje automático, educación de ciencias de la computación, visión computarizada y procesamiento de imágenes, medicina, biología e incluso astronomía.

También es usado para desarrollo web. Aquí podemos comenzar a comparar sus aplicaciones con las aplicaciones de JavaScript. Python se usa para el desarrollo back-end, el área del desarrollo web dedicada a crear los elementos con los cuales los usuarios no interactúan directamente, tales como los que se encuentran en el servidor de una aplicación.

JavaScript

Si bien Python puede ser usado para desarrollar la parte back-end de una aplicación web, JavaScript puede ser usado para desarrollar tanto el back-end como el front-end de una aplicación.

El font-end es la parte de la aplicación web que los usuarios ven y con la cual pueden interactuar directamente. Cuando ves o interactúas con una aplicación web, estás usando JavaScript "detrás de escenas."

De la misma forma, cuando interactúas con una aplicación móvil, podrías estar usando JavaScript ya que frameworks como React Native nos permiten desarrollar aplicaciones que se adaptan a distintas plataformas.

JavaScript es usado ampliamente en desarrollo web porque es un lenguaje de programación versátil que nos da las herramientas que necesitamos para desarrollar los componentes de una aplicación web.

Diferencias entre las aplicaciones de Python y JavaScript

En resumen, los desarrolladores usan Python para una amplia gama de aplicaciones científicas y usan JavaScript para desarrollo web, incluyendo la funcionalidad que ve el usuario y los servidores.

🔸 Python vs. JavaScript: Sintaxis

Ahora que ya sabes para qué se usan, veamos cómo se escriben estos lenguajes de programación y las diferencias en su sintaxis.

Veremos las diferencias en sus principales elementos:

  • Bloques de código
  • Definición de variables
  • Convenciones de nomenclatura para variables
  • Constantes
  • Tipos de datos y valores
  • Comentarios
  • Estructuras built-in (incorporadas)
  • Operadores
  • Input y output
  • Sentencias condicionales
  • Ciclos for y ciclos while
  • Funciones
  • Programación orientada a objetos

Bloques de código en Python y JavaScript

Cada lenguaje de programación tiene su propio estilo para definir bloques de código. Veamos sus diferencias en Python y JavaScript.

Cómo definir bloques de código en Python

Python depende de la indentación (sangría) para definir bloques de código. Cuando una serie continua de lineas de código están indentadas al mismo nivel, se consideran parte del mismo bloque de código.

Esto se usa para definir condicionales, funciones, ciclos y básicamente todas las sentencias compuestas (compound statements) en Python.

Aquí tenemos algunos ejemplos:

image-127
Uso de la indentación (sangría) para definir bloques de código en Python.

💡 Dato: Veremos las diferencias específicas entre estos elementos en Python y en JavaScript en tan solo un momento. Por ahora, nos enfocaremos en la indentación.

Cómo definir bloques de código en JavaScript

En cambio, en JavaScript usamos llaves ({}) para agrupar las sentencias que pertenecen al mismo bloque de código.

Aquí tenemos algunos ejemplos:

image-14
Uso de llaves para definir bloques de código en JavaScript.

Variables en Python y JavaScript

La sentencia de asignación es una de las sentencias más fundamentales de cualquier lenguaje de programación. Veamos cómo puedes definir una variable en Python y en JavaScript.

Cómo definir una variable en Python

Para definir una variable en Python, escribimos el nombre de la variable seguido de un signo igual (=) y luego el valor que será asignado a la variable.

De esta forma:

<nombre_de_la_variable> = <valor>

Por ejemplo:

x = 5

Cómo definir una variable en JavaScript

La sintaxis es muy similar en JavaScript pero solo debemos agregar la palabra clave var o let antes del nombre de la variable y un punto y coma al final de la línea (;).

De esta forma:

var <nombre_de_la_variable> = <valor>;

💡 Dato: cuando defines una variable usando var, la variable tiene ámbito (scope) local dentro de la función o ámbito (scope) global. Esto depende de dónde se defina la variable.

Por ejemplo:

var x = 5;

También podemos usar la palabra clave let:

let <nombre_de_la_variable> = <valor>;

Por ejemplo:

let x = 5;

💡 Dato: En este caso, cuando usamos let, la variable tendrá ámbito (scope) del bloque de código. Solo será reconocida en el bloque de código en el cual fue definida.

image-125
Definiciones de variables en Python y JavaScript.

💡 Dato: En JavaScript, el final de una sentencia se marca con un punto y coma (;) pero en Python, simplemente iniciamos una nueva línea para marcar el final de una sentencia.

Convenciones de nomenclatura en Python y JavaScript

Python y JavaScript siguen dos convenciones de nomenclatura distintas.

Cómo nombrar variables en Python

En Python, deberíamos usar el estilo de nomenclatura snake_case.

De acuerdo con la guía de estilo de Python:

Los nombre de las variables siguen la misma convención que los nombres de las funciones.
Los nombre de las funciones deben estar escritos en minúscula, con las palabras separadas por un guión bajo como se considere necesario para que sean más fáciles de leer.

Texto original en inglés:

Variable names follow the same convention as function names.

Function names should be lowercase, with words separated by underscores as necessary to improve readability.

Por lo tanto, el nombre de una variable en Python se escribiría de esta forma:

mi_nombre

💡 Dato: la guía de estilo menciona que "mixedCase también se permite en contextos en los cuales ya sea el estilo principal, para mantener la compatibilidad con el código existente" (fuente).

Cómo nombrar variables en JavaScript

En cambio, deberíamos usar la convención de nomenclatura lowerCamelCase en JavaScript. Si seguimos esta convención, el nombre de la variable iniciaría con una letra minúscula y luego cada palabra iniciaría con una letra mayúscula.

Según el artículo de MDN Web Docs, JavaScript guidelines:

Para nombres de variables, usa lowerCamelCasing y usa nombres concisos, semánticos y fáciles de leer para humanos donde sea apropiado.

Texto original en inglés:

For variable names use lowerCamelCasing, and use concise, human-readable, semantic names where appropriate.

Por lo tanto, el nombre de una variable en JavaScript se escribiría de esta forma:

miNombre
Screen-Shot-2022-10-16-at-10.32.19-AM

Constantes en Python y JavaScript

Genial. Ahora que ya sabes más sobre las variables, hablemos un poquito sobre las constantes. Las constantes guardan valores que no se pueden cambiar durante la ejecución del programa.

Cómo definir constantes en Python

En Python, usamos convenciones de nomenclatura para definir constantes porque no hay reglas estrictas en el lenguaje para prevenir cambios al valor de una variable.

Según la guía de estilo de Python:

Las constantes normalmente se definen al nivel del módulo y se escriben en letras mayúsculas con las palabras separadas por un guión bajo.

Texto original en inglés:

Constants are usually defined on a module level and written in all capital letters with underscores separating words.

Esta es la convención que debemos seguir para definir una constante en Python:

NOMBRE_CONSTANTE

Por ejemplo:

PORCENTAJE_IMPUESTOS = 32

💡 Dato: esto es útil porque es como una advertencia para nosotros y para otros desarrolladores que nos indica que ese valor no se debe modificar en el programa. Pero técnicamente, el valor puede ser modificado.

Cómo definir constantes en JavaScript

En cambio, en JavaScript sí podemos definir constantes cuyo valor no se puede reasignar en el programa.

Pero esto no significa que el valor no puede ser modificado.

Según el artículo const en MDN Web Docs:

La declaración const crea una referencia que solo permite acceder a un valor. Esto no significa que el valor que contiene es inmutable. Solo significa que el identificador de la variable no puede ser reasignado. Por ejemplo, en el caso en el cual el contenido es un objeto, esto significa que el contenido del objeto (es decir, sus propiedades) puede ser modificado.

Texto original en inglés:

The const declaration creates a read-only reference to a value. It does not mean the value it holds is immutable—just that the variable identifier cannot be reassigned. For instance, in the case where the content is an object, this means the object's contents (e.g., its properties) can be altered.

Para definir una constante en JavaScript, escribimos la palabra clave const antes del nombre de la variable:

const PORCENTAJE_IMPUESTOS = 32;

Si intentamos cambiar el valor de la constante, veremos el siguiente error:

Screen-Shot-2022-10-16-at-8.01.07-AM

Por lo tanto, el valor no puede ser modificado.

💡 Dato: para ejecutar y probar pequeños bloques de código de JavaScript, puedes usar la consola en las Herramientas de Desarrollo de Chrome.

Screen-Shot-2022-10-16-at-10.36.34-AM-1
Constante en Python (izquierda) y constante en JavaScript (derecha).

Tipos de datos y valores en Python y JavaScript

Veamos las principales diferencias entre los tipos de datos en Python y JavaScript.

Tipos de datos numéricos

Python tiene tres tipos de datos numéricos para ayudarnos a realizar cálculos precisos. Estos tipos de datos numéricos incluyen: int (enteros),  float (números decimales o de punto flotante) y complex (números complejos). Cada uno de ellos tiene propiedades, características y aplicaciones específicas.

En cambio, JavaScript solo tiene dos tipos de datos numéricos: Number y BigInt. Los números enteros y los números decimales (floats) se consideran como parte del tipo de dato Number.

Según el artículo Number en MDN Web Docs:

Number es un objeto primitivo envolvente que permite representar y manipular valores numéricos cómo 37 o -9.25.

El artículo en inglés menciona que:

Un literal numérico como 37 en código de JavaScript es un valor de punto flotante, no un entero. No existe un tipo de dato entero para el uso común diario. (Ahora JavaScript tiene el tipo de dato BigInt, pero no está diseñado para reemplazar a Number en la mayoría de los casos. 37 sigue siendo un Number, no un BigInt).

Texto original en inglés:

A number literal like 37 in JavaScript code is a floating-point value, not an integer. There is no separate integer type in common everyday use. (JavaScript now has a BigInt type, but it was not designed to replace Number for everyday uses. 37 is still a Number, not a BigInt.)

None vs. null

En Python, tenemos un valor especial llamado None que normalmente usamos para indicar que una variable no tiene un valor en un momento específico del programa.

En JavaScript, el valor con una función similar es null, el cual "representa intencionalmente un valor nulo o vacío" (fuente).

image-144
None en Python (izquierda) y null en JavaScript (derecha).

El valor undefined

En JavaScript tenemos un valor especial que se asigna automáticamente cuando declaramos una variable sin asignarle un valor.

Este es un ejemplo:

image-142

Como puedes ver, el valor de la variable x es undefined.

En Python, debes asignarle un valor inicial a cada variable. No se puede declarar una variable sin un valor inicial.

💡 Dato: en Python puedes asignar el valor None como el valor inicial de una variable para representar la ausencia inicial de un valor.

Tipos de datos primitivos en Python y JavaScript

Los tipos de datos primitivos son los valores más fundamentales con los cuales podemos trabajar en un lenguaje de programación. Comparemos los tipos de datos primitivos de estos dos lenguajes:

  • Python tiene cuatro tipos de datos primitivos: Integer (int), Float (float), Boolean (bool) y String (str).
  • JavaScript tiene siete tipos de datos primitivos: undefined, Boolean, String, Number, BigInt, Symbol, and null (fuente).

Cómo escribir comentarios en Python y JavaScript

Los comentarios son muy importantes para escribir código fácil de entender y de leer. Veamos cómo puedes usarlos en Python y JavaScript.

Comentarios de una línea

  • En Python, usamos un símbolo de numeral (#) para iniciar un comentario. Todos lo que escribimos en esa línea después del símbolo de numeral se considera parte del comentario.  
  • En JavaScript, escribimos dos barras (//) para iniciar un comentario de una línea.

Este es un ejemplo:

Screen-Shot-2022-10-16-at-10.39.57-AM
Comentario en Python (izquierda) y comentario en JavaScript (derecha).

En Python:

# Comentario

En JavaScript:

// Comentario

Comentarios de varias líneas

  • En Python, para escribir un comentario de varias líneas, comenzamos cada línea con un símbolo de numeral (#).
  • En JavaScript, los comentarios de varias líneas inician con /* y terminan con */. Todo lo que escribimos entre estos símbolos se considera parte del comentario.
Screen-Shot-2022-10-16-at-10.46.06-AM
Comentario en Python (izquierda) y comentario en JavaScript (derecha).

En Python:

# Comentario de varias líneas
# en Python para explicar
# el codigo en detalle.

En JavaScript:

/* 
Comentario de varias líneas
en JavaScript para explicar 
el codigo en detalle.
*/

Estructuras de datos incorporadas en Python y JavaScript

Las estructuras de datos incorporadas en Python y JavaScript también tienen diferencias claves.

Tuplas

  • En Python, tenemos una estructura de datos built-in (incorporada) llamada tupla (tuple en inglés) que es muy parecida a una lista pero es inmutable. Por lo tanto, no puede ser modificada durante la ejecución del programa y se usa para almacenar información que no puede ser modificada.
  • En JavaScript, no tenemos una estructura de datos incorporada con estas características específicas. Sin embargo, puedes implementar una estructura de datos similar con ciertos aspectos del lenguaje de programación.
image-182

Listas vs. Arrays (Arreglos)

  • En Python, las listas se usan para almacenar una secuencia de valores en la misma estructura de datos. Pueden ser modificadas, indexadas, rebanadas y usadas en el programa.
  • En JavaScript, existe una versión equivalente de esta estructura de datos llamada array.

Este es un ejemplo:

Screen-Shot-2022-10-16-at-10.55.04-AM
Lista en Python (izquierda) y array en JavaScript (derecha).

Diccionarios vs. Tablas Hash

  • En Python, tenemos una estructura de datos incorporada llamada diccionario que nos permite asociar ciertos valores a otros valores y crear pares clave-valor. Esto funciona de forma muy similar a una tabla hash.
  • JavaScript no tiene este tipo de estructura de datos incorporada, pero hay formas de obtener una funcionalidad similar con ciertas características del lenguaje.
image-183

Operadores en Python y JavaScript

Los operadores son esenciales para escribir expresiones en cualquier lenguaje de programación. Veamos sus diferencias en Python y JavaScript.

Floor Division

Si bien la mayoría de los operadores aritméticos funcionan exactamente igual en Python y JavaScript, el operador de floor division (una división que retorna un valor entero) es un poco diferente.

  • En Python, el operador de floor division (también llamado "división entera") se representa con una barra doble (//).
  • En JavaScript, no tenemos un operador de floor division en particular. En su lugar, llamamos al método Math.floor() para redondear el resultado al número entero más cercano menor que el resultado obtenido.
image-149

Comparando valores y tipos de datos

En Python, usamos el operador == para comparar si dos valores y sus tipos de datos son iguales.

Por ejemplo:

# Comparando dos enteros
>>> 0 == 0     
True
# Comparando un entero con una cadena de caracteres
>>> 0 == "0"
False

En JavaScript también tenemos este operador == pero funciona un poco diferente porque convierte los dos objetos al mismo tipo de dato antes de realizar la comparación.

Si verificamos el resultado de la comparación "entero vs. cadena de caracteres" del ejemplo anterior pero en JavaScript (0 == "0"), el resultado es True en lugar de False porque los valores se convierten al mismo tipo de dato antes de ser comparados:

image-150

En JavaScript, para verificar si el valor y el tipo de dato de ambos valores son iguales, debes usar este operador === (triple signo igual).

Ahora sí obtenemos el resultado que estabamos esperando:

image-151

Genial, ¿no?

💡 Dato: el operador == en Python funciona como el operador === en JavaScript.

Operadores lógicos

  • En Python, los tres operadores lógicos son: and, or y not.
  • En JavaScript, estos operadores son: &&, || y ! (respectivamente).
image-152

Operadores de tipo

  • En Python, para verificar el tipo de dato de un objeto, usamos la función type().
  • En JavaScript, usamos typeof.

Esta es una descripción gráfica de su sintaxis:

Screen-Shot-2022-10-16-at-10.58.23-AM

Input y Output en Python y JavaScript

Pedirle al usuario que ingrese valores y luego mostrar un resultado es muy común. Veamos cómo puedes hacerlo en Python y JavaScript.

Input

  • En Python, usamos la función input() para tomar un valor ingresado por el usuario. Escribimos entre paréntesis el mensaje que será mostrado con los detalles del valor que se debe ingresar.
  • En JavaScript, una alternativa (si vas a ejecutar el código en un navegador) es mostrar una pequeña ventana con window.prompt(message) y luego asignar el resultado a una variable.

Su diferencia principal es que en Python, el usuario deberá ingresar un valor en el terminal mientras que en JavaScript, se mostrará una pequeña ventana en el navegador que le permitirá al usuario ingresar un valor.

Screen-Shot-2022-10-16-at-11.02.14-AM

💡 Dato: Verás lo siguiente en la consola de Python para ingresar un valor.

image-184

En JavaScript, si abres las Herramientas de Desarrollo de Chrome e ingresas esta línea de código en la consola:

image-163

Se mostrará la siguiente ventana:

Screen-Shot-2022-10-16-at-11.06.51-AM

Mostrar un valor

  • En Python, podemos mostrar un valor en la consola o en el terminal con la función print(), pasando el valor entre paréntesis.
  • En JavaScript, podemos mostrar un valor en la consola o en el terminal con console.log(), pasando el valor entre paréntesis.
Screen-Shot-2022-10-16-at-3.30.32-PM

💡 Dato: si ejecutas tu código en un navegador, también puedes llamar a alert() para mostrar un mensaje (o valor) pasado entre paréntesis a la función.

Condicionales en Python y JavaScript

Con los condicionales podemos escoger lo que ocurre en el programa en base a si una condición es True o False (verdadera o falsa). Veamos sus diferencias en Python y JavaScript.

Sentencia if

  • En Python, usamos la indentación (sangría) para indicar cuáles líneas de código pertenecen al condicional.
  • En JavaScript, debemos escribir la condición entre paréntesis y rodear el código con llaves. El código también debería estar indentado para que sea más fácil de leer.
image-154
Sentencia if en Python (izquierda) y JavaScript (derecha)

Sentencia if/else

La cláusula else es muy parecida en ambos lenguajes de programación. La única diferencia es que:

  • En Python, escribimos dos puntos (:)  luego de la palabra clave else.
  • En JavaScript, rodeamos el código que pertenece a esta cláusula con llaves ({}).
image-155

Varias condiciones

Para verificar varias condiciones:

  • En Python, escribimos la palabra clave elif seguida de una condición. Luego de la condición, escribimos dos puntos y el código indentado en la próxima línea.
  • En JavaScript, escribimos las palabras claves else if seguidas de la condición entre paréntesis. Luego de la condición, escribimos un par de llaves y el código indentado entre las llaves.
image-156
Condicional en Python (izquierda) y JavaScript (derecha).

Switch en JavaScript

  • En JavaScript, tenemos una estructura de control adicional que podemos usar para escoger lo que debe ocurrir en base al valor de una expresión. Esta sentencia se llama switch.
  • Python no tiene esta sentencia incorporada.

Esta es su sintaxis general:

image-159
Sentencia Switch en JavaScript

En JavaScript:

switch (expresion) {
    case valor1:
        // Codigo
        break;
    case valor2:
        // Codigo
        break;
    case valor3:
        // Codigo
        break;
    default:
        // Codigo
        break;
}

💡 Dato: puedes añadir tantos casos como necesites y la expresión puede ser una variable.

Ciclos for y ciclos while en Python y JavaScript

Ahora veamos cómo podemos usar los distintos tipos de ciclos en Python y Javascript y sus diferencias principales.

Ciclos for

La sintaxis para definir un ciclo for en Python es relativamente más sencilla que la sintaxis en JavaScript.  

  • En Python, escribimos la palabra clave for seguida del nombre de la variable del ciclo, la palabra clave in y una llamada a la función range() especificando los parámetros necesarios. Luego, escribimos dos puntos (:) seguidos del cuerpo del ciclo indentado.
  • En JavaScript, debemos especificar varios valores explícitamente. Comenzamos con la palabra clave for seguida de paréntesis. Dentro de esos paréntesis, definimos la variable del ciclo con su valor inicial, la condición que debe ser False para detener el ciclo y cómo se actualizará la variable en cada iteración. Luego, escribimos un par de llaves para definir el bloque de código y dentro de las llaves escribimos el cuerpo del ciclo indentado.
image-165
Ciclo for en Python (izquierda) y ciclo for en JavaScript (derecha)

Iterando sobre iterables

Podemos usar un ciclo for en Python y en JavaScript para iterar sobre los elementos de un iterable.

  • En Python, escribimos la palabra clave for seguida de la variable del ciclo, la palabra clave in y el iterable. Luego, escribimos dos puntos (:) y el cuerpo del ciclo (indentado).
  • En JavaScript, podemos usar un ciclo for .. of. Escribimos la palabra clave for seguida de un par de paréntesis y dentro de esos paréntesis escribimos la palabra clave var o let seguida de la variable del ciclo, la palabra clave of y el iterable. Rodeamos el cuerpo del ciclo con llaves y luego lo indentamos.
image-167
Ciclo for en Python (izquierda) and JavaScript (derecha)

En JavaScript, también tenemos los ciclos for .. in para iterar sobre las propiedades de un objeto.

Según MDN Web Docs:

La instrucción for-in itera sobre todas las propiedades enumerables de un objeto que está codificado por cadenas (ignorando los codificados por Símbolos, incluidas las propiedades enumerables heredadas.

Texto original en ingles:

The for...in statement iterates over all enumerable properties of an object that are keyed by strings (ignoring ones keyed by Symbols), including inherited enumerable properties.

Este es un ejemplo:

const objeto = { a: 1, b: 2, c: 3 };

for (const propiedad in objeto) {
  console.log(propiedad, objeto[propiedad]);
}

Cuando ejecutamos este código, el resultado que vemos en la consola de las Herramientas de Desarrollo de Chrome es:

image-168

Ciclos while

Los ciclos while son muy similares en Python y JavaScript.

  • En Python, escribimos la palabra clave while seguida de la condición, dos puntos (:) y, en una línea nueva, el cuerpo del ciclo (indentado).
  • En JavaScript, la sintaxis es muy parecida pero debemos rodear la condición con paréntesis y el cuerpo del ciclo con llaves.
image-169
Ciclo while en Python (izquierda) y ciclo while en JavaScript (derecha)

Ciclos do..while en JavaScript

En JavaScript, también tenemos otro tipo de ciclo que no existe en Python.

Este tipo de ciclo se denomina un ciclo do..while porque ejecuta el código al menos una vez y continúa su ejecución mientras la condición es verdadera (True).

Esta es la sintaxis básica:

do {
    // Codigo
} while (condicion);

💡 Dato: este tipo de ciclo garantiza que el código será ejecutado al menos una vez.

Esto es particularmente útil cuando le pedimos al usuario que ingrese un valor porque se le pedirá al usuario que realice esta acción al menos una vez. Si el valor ingresado es válido podemos continuar con el programa. Pero si no es válido, podemos pedirle al usuario que ingrese el valor nuevamente hasta que sea válido.

Funciones en Python y JavaScript

Las funciones son muy importantes para escribir programas concisos, fáciles de mantener y fáciles de leer. La sintaxis es muy similar en Python y en JavaScript, pero veamos sus principales diferencias:

  • En Python, escribimos la palabra clave def seguida del nombre de la función y de la lista de parámetros dentro de los paréntesis. Después de esta lista, escribimos dos puntos (:) y el cuerpo de la función (indentado).
  • En JavaScript, las únicas diferencias son que definimos la función con la palabra clave function y rodeamos el cuerpo de la función con llaves.
image-170
Función en Python (arriba) y JavaScript (abajo)

Además, hay una diferencia muy importante en las funciones en Python y JavaScript:

Número de argumentos

En Python, el número de argumentos que se pasan a una función debe ser exactamente igual al número de parámetros definidos en la definición de la función (a menos que tengan valores asignados por defecto en la definición de la función). Si este no es el caso, ocurrirá un error.

Este es un ejemplo:

>>> def foo(x, y):
	print(x, y)

	
>>> foo(3, 4, 5)
Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    foo(3, 4, 5)
TypeError: foo() takes 2 positional arguments but 3 were given

En JavaScript, esto no ocurrirá porque los parámetros son opcionales. Puedes llamar a una función con menos o más argumentos que los parámetros que se incluyeron en la definición de la función.

Los parámetros que no tienen un argumento asignado tendrán el valor undefined por defecto y los argumentos extra pueden ser usados a través del objeto arguments.

Este es un ejemplo en JavaScript:

image-171

Nota cómo la función se llamó con tres argumentos pero solo dos parámetros se incluyeron en la lista de parámetros de la definición de la función.

💡 Dato: para obtener el número de argumentos pasados a la función, puedes usar arguments.length en la función.

Programación orientada a objetos en Python y JavaScript

Tanto Python como JavaScript permiten trabajar con programación orientada a objetos, así que veamos cómo puedes crear y usar los principales elementos de este paradigma de programación.

Clases

La primera línea de la definición de una clase es muy similar en Python y en JavaScript. Escribimos la palabra clave class seguida por el nombre de la clase.

La única diferencia es que:

  • En Python, después del nombre de la clase, escribimos dos puntos (:).
  • En JavaScript, rodeamos el cuerpo de la clase con llaves ({}).
image-172
Clase en Python (izquierda) y clase en JavaScript (derecha)

💡 Dato: En Python y JavaScript, los nombres de las clases deben iniciar con una letra mayúscula y cada palabra en su nombre debe iniciar con una letra mayúscula.

Constructor y atributos

El constructor es un método especial que se llama automáticamente cuando se crea una nueva instancia de la clase (un objeto nuevo). Su propósito principal es inicializar los atributos de la instancia.

  • En Python, el constructor que inicializa la nueva instancia se llama init (con dos guión bajo antes y después del nombre). Este método se llama automáticamente cuando se crea una instancia de la clase para inicializar sus atributos. Su lista de parámetros define los valores que debemos pasar para crear la instancia. Esta lista inicia con self como el primer parámetro.
  • En JavaScript, el método constructor se llama constructor y también tiene una lista de parámetros.

💡 Dato: en Python usamos self para referirnos a una instancia mientras que en JavaScript usamos this.

Para asignar valores a los atributos en Python, usamos esta sintaxis:

self.<atributo> = <valor>

En cambio, usamos esta sintaxis en JavaScript:

this.<atributo> = <valor>;
image-174
Clase en Python (izquierda) y clase en JavaScript (derecha)

Métodos en Python y JavaScript

En Python, definimos métodos con la palabra clave def seguida del nombre del método y la lista de parámetros dentro de los paréntesis. La lista de parámetros inicia con el parámetro self para referirse a la instancia que llama al método. Después de esta lista, escribimos dos puntos (:) e indentamos el cuerpo del método.

Este es un ejemplo:

class Circulo:

	def __init__(self, radio, color):
		self.radio = radio
		self.color = color

	def calcular_diametro(self):
		return self.radio * 2
Ejemplo: Método de una clase de Python.

En JavaScript, un método se define escribiendo su nombre seguido de la lista de parámetros y un par de llaves. Dentro de las llaves, escribimos el cuerpo del método.

class Circulo {

    constructor(radio, color) {
        this.radio = radio;
        this.color = color;
    }

    calcularDiametro() {
        return this.radio * 2;
    }
}
Ejemplo: Método de una clase de JavaScript.

Instancias

Para crear instancias de una clase:

  • En Python, escribimos el nombre de la clase y pasamos los argumentos entre paréntesis.
mi_circulo = Circulo(5, "Rojo")
  • En JavaScript, debemos agregar la palabra clave new antes del nombre de la clase.
mi_circulo = new Circulo(5, "Rojo");

🔹 En resumen

Python y JavaScript son lenguajes de programación muy poderosos con aplicaciones diversas.

Python es usado para el desarrollo web y para una amplia gama de aplicaciones, incluyendo aplicaciones científicas. JavaScript se usa principalmente para desarrollo web (front-end y back-end) y para desarrollo de aplicaciones móviles.

Tienen diferencias importantes, pero ambos tienen los mismos elementos básicos que necesitamos para escribir programas poderosos.

Espero que te haya gustado mi artículo y que te haya sido de utilidad. Ahora ya conoces las diferencias entre Python y JavaScript.

⭐ Te invito a seguirme en Twitter para encontrar más tutoriales y tips de programación.