A pesar de que yo no llamaría JavaScript un Lisp, que es, en mi humilde opinión, más similar a la de Lisp manera de hacer las cosas que la mayoría de los lenguajes convencionales (incluso los funcionales).
Para uno, como Lisp, que es, en esencia, un simple imperativo lenguaje basado en el tipo cálculo lambda que es apto para ser manejado por un REPL.
En segundo lugar, es fácil de incrustar literal de los datos (incluido el código en la forma de las expresiones lambda) en JavaScript, ya que un subconjunto de es equivalente a JSON. Este es un common Lisp patrón.
Tercero, su modelo de valores y tipos es muy lispy. Es orientado a objetos en un sentido amplio de la palabra en la que todos los valores tienen un concepto de identidad, pero no es particularmente orientada a objetos en la mayoría de los más estrecho de los sentidos de la palabra. Como en Lisp, los objetos se escriben y muy dinámico. El código se divide en unidades de funciones, no de las clases.
De hecho, hay un par de (más o menos) los recientes acontecimientos en el JavaScript mundo que hacen que el lenguaje se siente muy lispy a veces. Tomar jQuery, por ejemplo. La incrustación de los selectores de CSS como un sublenguaje es un bonito Lisp-como en el enfoque, en mi opinión. O considere la posibilidad de ECMAScript la Armonía del metaobject protocolo: realmente Se parece a un puerto directo de Common Lisp (mucho más de lo que cualquiera de Python o Ruby metaobject sistemas!). La lista continúa.
JavaScript no hace falta macros y sensata de la implementación de un REPL con el editor de integración, lo cual es lamentable. Sin duda, las influencias de otros idiomas son muy visibles (y no necesariamente de mala manera). Aún así, hay una cantidad significativa de compatibilidad cultural entre el Lisp y JavaScript campamentos. Algunas de ellas pueden ser una coincidencia (como el reciente aumento de JavaScript compilación JIT), algunos de forma sistemática, pero es definitivamente allí.