tag example data codes code javascript python semantics

javascript - example - html codes list



¿Qué tan diferentes son las semánticas entre Python y JavaScript? (6)

  1. Herencia clásica en Python, herencia prototípica en ECMAScript
  2. ECMAScript es un lenguaje de llaves y punto y coma, mientras que Python está basado en espacios en blanco y sangría / bloque
  3. No hay palabra clave var en Python, los globales implícitos en ECMAScript, ambos tienen un ámbito léxico
  4. Los cierres en Python 2.5 y anteriores (re: el comentario de Alex Martelli) son algo "limitados" porque los enlaces son de solo lectura, no puede acceder a variables privadas como podría hacerlo en ECMAScript
  5. No hay undefined en Python, se lanzan excepciones
  6. Lista inmutable de arrays en Python (tuplas)
  7. No hay una declaración de switch en Python, pero en lugar de eso, se recomienda utilizar un diccionario de esa manera, a veces es conveniente asignar propiedades a las lambdas y ejecutarlas.
  8. ECMAScript 3 no tiene una declaración de yield , ni let expresiones / declaraciones, ni array comprehension , sin embargo, se incluyen en el JS de Mozilla que no es estándar
  9. raise vs throw , except vs catch (Python, JS)
  10. Cadenas Unicode nativas en ECMAScript
  11. operadores de palabras clave como and , is y not se utilizan en Python
  12. Python no admite contadores como i++
  13. El bucle for de Python es "inteligente", por lo que no necesita usar un contador para enumerar a través de listas, ni se encuentra con propiedades prototípicas heredadas de Object.prototype
  14. No tienes que usar el new operador en Python para crear objetos
  15. Python es patito

Robé un poco de información de http://hg.toolness.com/python-for-js-programmers/raw-file/tip/PythonForJsProgrammers.html

Ambos idiomas parecen extremadamente similares a mí. Aunque Python admite clases reales en lugar de estar basadas en prototipos, en Python las clases no son tan diferentes de las funciones que generan objetos que contienen valores y funciones, tal como lo haría en JavaScript. Por otro lado, JavaScript solo admite números y cadenas de punto flotante como tipos de datos integrados.

Estas me parecen diferencias bastante superficiales, así que aparte de estas cosas, ¿cuáles son algunas de las diferencias más importantes entre ellas?


Agregaré algunos que no he visto mencionados aún:

  • JavaScript soporta la notación de objeto literal. Python no funciona exactamente de la misma manera, pero los diccionarios de Python son similares a los arrays asociativos de JavaScript.
  • Los objetos / arrays de JavaScript son compatibles con esa característica genial en la que no necesita citar cadenas (de una sola palabra) al crear nuevos objetos:

    var foo = {bar: "baz"};

  • El acceso a claves de matrices asociativas en JavaScript se puede hacer usando la notación de puntos, además de la notación de corchetes. Es decir, estos son los mismos:

    foo.bar; // devuelve "baz"

    foo ["barra"]; // devuelve "baz"

  • La sintaxis de la función anónima de Python ( lambda ) no es tan flexible como las funciones anónimas de JavaScript.

  • Python tiene, como, una biblioteca estándar y esas cosas. (Y sí, sé de Rhino et al., Pero las bibliotecas que te brindan no son estándar . No hay una forma estandarizada de leer un archivo en JavaScript ... que yo sepa).
  • Puede ejecutar JavaScript en un navegador. Python ... no tanto. ;)

En Python, "self" se pasa explícitamente a una función miembro y no es una palabra clave especial ni nada. En javascript, "esto" tiene un alcance dinámico. puede jugar con el alcance de una función miembro llamando a apply ().


En Python, el espacio en blanco es parte del lenguaje. En Javascript, las llaves definen los bloques de código y los espacios se ignoran. Además, Python tiene enlaces para la API de Java, .net y otras bibliotecas de fantasía geniales. Javascript está bastante limitado en el departamento de bibliotecas en comparación con Python, pero tiene algunas bibliotecas de ventanas ordenadas y otras.


Siendo un desarrollador de JavaScript y haciendo algunas cosas de Python (gracias a Google App Engine) diría que las dos diferencias principales entre JavaScript y Python serían

  • Formateo A JavaScript no le importa el aspecto de su código (piense en todos los minimizadores de código y en el aspecto resultante)

  • Soporte de Unicode. JavaScript es completamente unicode, Python 2.5 de GAE no tanto (con Latin 1 como el conjunto de caracteres predeterminado). Por lo tanto, tener la necesidad de admitir caracteres no latinos puede ser un PITA real si no está seguro de lo que está haciendo.


Escritura : Javascript y Python se escriben dinámicamente , mientras que javascript está débilmente , Python está fuertemente tipada.