Iagovar

Javascript: ¿Qué diferencias hay entre los objetos en JS y los diccionarios en Python?

Pueden parecer similares, pero hay diferencias relevantes entre ellos.

A simple vista, los objetos en JavaScript pueden parecer muy similares sintáticamente, sin embargo tiene diferencias que hay que considerar.

Fijémonos en estos dos bloques de código:

Python JavaScript

dict={'Name':'Ram',
      'Occupation': 'Scientist',
      'salary': '50000'
      }

for i in dict:
    print(i, dict[i])

"""
Name Ram
Occupation Scientist
salary 50000
"""
      

dict={Name:'Ram',
      Occupation: 'Scientist',
      salary: '50000'
      }

for(i in dict){
  console.log(`${i}, ${dict[i]}`)}

/*
"Name, Ram"
"Occupation, Scientist"
"salary, 50000"
*/
      

De aquí podemos sacar:

  1. Los objetos en Javascript sólo son iterables con for in, no con for of (ver sus diferencias). En Python siempre son iterables.
  2. Ambos son pares de clave : valor.
  3. En Python hay que definir las claves como cadenas de texto, o nos devolverá NameError: name 'Name' is not defined, mientras que en Javascript esto NO es necesario. Puedes definir una variable Name = 1 antes del diccionario, pero entonces al imprimir el diccionario te encontrarás con 1: 'Ram' y no parece un escenario en el que uno quiera verse.
  4. En Javascript console.log(dict['Name'], dict.Name) devuelve // Ram Ram ya que JS permite objeto.clave como un alias de objeto['clave'], mientras que esto en Python no es posible.