¿Cuáles son las mejores y más extrañas partes del programa JavaScript (también Node.js)?

Esta es mi respuesta, será muy parcial porque me encanta usar JavaScript y Node.JS. Mi respuesta será en partes, la primera será sobre javscript tradicional y la segunda será sobre nodejs

Según yo, la mejor parte de JavaScript está en su curva de aprendizaje, no necesita saber muchas cosas de antemano y también la facilidad con la que puede escribir JavaScript (tiene una gran comunidad en línea para ayudarlo con sus problemas), También puede depurar javascript directamente desde la consola de Chrome Developer Tools / Firebug. También viene con varias bibliotecas para ampliar su funcionalidad. Puede crear prototipos de una aplicación web de forma rápida y sencilla. Ahora llegamos a la parte extraña: la versión actual de javascript no es compatible con el concepto oop, pero se agregará en una versión futura, por ahora puede usar Jquery para implementar esto utilizando la funcionalidad del prototipo y hay otra. no es una especie de compilador específico (que yo sepa) para depurar el programa que harás directamente desde el navegador.

Ahora llegando a la parte de NodeJS. Lo principal con el nodo es su rendimiento y su naturaleza orientada a eventos y sin bloqueo . Lo que ocurre con el nodo es que puedes decirlo como python para el desarrollo web, lo que quiero decir con esto es similar a que python tiene tantos módulos que puedes conectar directamente y usar el nodo funcional también tiene una gran cantidad de módulos que puedes usar directamente. También para un tipo como yo que tiene bastante buen conocimiento de JavaScript, creará su propio código de servidor y también el lado del cliente adaptado a sus necesidades específicas. Un ejemplo en este caso es que es muy difícil implementar cosas como websockets (generalmente utilizados para aplicaciones de chat y transmisión de datos en tiempo real) en marcos como ruby ​​on rails o en php, pero llegando al nodo ya que es muy simple, encontrará muchas módulos que puede usar directamente como Socket.IO, websocketserver, etc. Entonces, al usar estos módulos, puede crear una aplicación de chat en 10-15 minutos como máximo y luego puede implementarla con la misma facilidad en proveedores de alojamiento como heroku, openshift, nodejitsu gratis. La parte extraña es comprender esta naturaleza orientada a eventos y sin bloqueo de nodejs y, debido a esto, el estilo de escritura del código es diferente de los js tradicionales utilizados en el lado del cliente.

Puede obtener más información sobre node utilizando esta publicación de blog que le resultó muy útil: Comprender node.js

Las partes extrañas que no me gustan:

Referencias / Clones
A veces me confundo realmente por el hecho de que las variables son clones de otras variables, mientras que los objetos son referencias a otros objetos. Por ejemplo:

var i = 0;
var a = i;

Aquí, la variable a no es una referencia a i , pero es otra variable que mantiene su valor. En lugar:

var i = {“a”: 1, “b”: 2};
var a = i;

Aquí, a es un referencia de la variable i. Si cambias a, cambias i.

Alcance
Ah, sí, tal vez una de las cosas más odiadas de JS es el comportamiento de su alcance.

esta
¿Cuántas veces tuvo que imprimir esto para comprender realmente cuál era su valor? Sí, todavía lo hago, después de 5 años de secuencias de comandos JS.

Llamadas asincrónicas
Las condiciones de carrera son muy comunes cuando se trata de llamadas AJAX. No puedo decir que es JS, es solo lo que es. A veces su código se ejecuta antes o después de otro bloque y no puede entender por qué. Es muy común para Javascrpter sin experiencia, pero una vez que lo entiendes, puedes solucionarlo.

Gracias por A2A

para Good Parts, cada desarrollador de JavaScript debe leer JavaScript: The Good Parts de Douglas Crockford

Para partes defectuosas puede leer Partes defectuosas: Apéndice B – JavaScript: Las partes buenas.

Encuentro interesante la elevación de JavaScript, el alcance en javascript, los operadores de igualdad, la devolución de llamada y la herencia de prototipos.

No entiendo por qué pusiste entre corchetes “también node.js”, ya que no me he sumergido en esa parte, no estoy seguro de eso, pero puedes disfrutar leyendo ¿Por qué demonios usaría Node.js? Un tutorial caso por caso

Gracias por A2A. Aunque rara vez uso JavaScript, en cambio hago mis cosas del lado del servidor (que es equivalente a la parte de Node.js) en Python, aquí están mis 2 centavos.

Callback hell es famoso, pero no es lo peor. Los estándares y bibliotecas prometedores en realidad están mejorando que Python, que debe confiar en el marco para proporcionar todo.

La falta de API de utilidades comunes tampoco está tan mal. Solo hay 112,000 resultados al buscar en Google “recorte de cadena de JavaScript” en el sitio: stackoverflow.com, lo que significa que estas preguntas están bien cubiertas. E incluso si no te gusta rodar el tuyo, hay Underscore.js.

Lo único que realmente me hizo sentir dolor es esta famosa matriz de igualdad: no haga que la igualdad de Javascript parezca peor de lo que es
Realmente no se me ocurre nada que lo ayude a solucionarlo, excepto recurrir a otro idioma, compilar a JavaScript si tiene que confiar en el navegador o el nodo.

Personalmente, trataría de evitar escribir JavaScript, tanto como estoy tratando de evitar PHP o Bash, si es posible.