the statement que node missing globales funciones form es6 javascript node.js

javascript - statement - use strict que es



SyntaxError: Uso de const en modo estricto (9)

Desde el momento en que se hizo la pregunta, el borrador de la palabra clave const ya es un estándar de vida como parte de ECMAScript 2015 . También la versión actual de Node.js admite declaraciones const sin el indicador --harmony .

Con lo dicho anteriormente, ahora puede ejecutar node app.js , con app.js :

''use strict''; const MB = 1024 * 1024; ...

obteniendo tanto la sintaxis de azúcar como los beneficios del modo estricto.

Estoy trabajando con node.js, y en uno de mis archivos js estoy usando const en "strict mode" . Cuando intento ejecutarlo, recibo un error:

SyntaxError: Use of const in strict mode.

¿Cuál es la mejor práctica para hacer esto?

Editar:

''use strict'' const MAX_IMAGE_SIZE = 1024*1024; // 1 MB


El uso de const en modo estricto está disponible con el lanzamiento de Chrome 41. Actualmente, Chrome 41 Beta ya se lanzó y lo admite.


Por lo general, este error se produce cuando la versión del nodo contra el cual se ejecuta el código es más antigua de lo esperado. (es decir, 0.12 o mayor).

Si está utilizando nvm, asegúrese de tener la versión correcta del nodo que se está utilizando. Puede verificar la compatibilidad en node.green para const en modo estricto

Encontré un problema similar en otra publicación y publiqué mi respuesta en detalle


Probablemente esta no sea la solución para todos, pero lo fue para mí.

Si está utilizando NVM, es posible que no haya habilitado la versión correcta del nodo para el código que está ejecutando. Después de reiniciar, su versión predeterminada del nodo cambia de nuevo a la predeterminada del sistema.

Corría en esto cuando trabajaba con react-native que había estado funcionando bien. Simplemente use nvm para usar la versión correcta del nodo para resolver este problema.


Si esto sucede en nodejs, se debe a la versión anterior de nodejs. Actualice el nodo usando,

1) Borrar el caché de NPM:

sudo npm cache clean -f

2) Instalar un pequeño ayudante llamado ''n''

sudo npm install -g n

3) Instalar la última versión estable de NodeJS

sudo n stable

Actualice las instrucciones de nodejs tomadas de, https://.com/a/19584407/698072


Un paso importante después de actualizar su nodo es vincular su binario de nodo a la última versión de nodo instalada

sudo ln -sf /usr/local/n/versions/node/6.0.0/bin/node /usr/bin/node


const no es compatible con ECMAScript. Entonces, después de especificar el modo estricto, se obtiene un error de sintaxis. Debe usar var en lugar de const si desea que su código sea compatible con todos los navegadores. Lo sé, no es la solución ideal, pero es lo que es. Hay formas de crear propiedades de solo lectura en JavaScript (consulte ¿Se pueden implementar las propiedades de solo lectura en JavaScript puro? ), Pero creo que podría ser una exageración dependiendo de su situación.

A continuación se muestra la nota de compatibilidad del navegador de MDN :

Compatibilidad del navegador

La implementación actual de const es una extensión específica de Mozilla y no es parte de ECMAScript 5. Se admite en Firefox & Chrome (V8). A partir de Safari 5.1.7 y Opera 12.00, si define una variable con const en estos navegadores, aún puede cambiar su valor más adelante. No es compatible con Internet Explorer 6-10, pero está incluido en Internet Explorer 11. La palabra clave const declara actualmente la constante en el alcance de la función (como variables declaradas con var).

Firefox, al menos desde la versión 13, lanza un TypeError si vuelve a declarar una constante. Ninguno de los principales navegadores produce avisos o errores si asigna otro valor a una constante. El valor de retorno de tal operación es el del nuevo valor asignado, pero la reasignación no es exitosa solo en Firefox y Chrome (al menos desde la versión 20).

const será definido por ECMAScript 6, pero con diferentes semánticas. Al igual que las variables declaradas con la instrucción let, las constantes declaradas con const serán de ámbito de bloque.


const y let son parte de ECMAScript 2015 (también conocido como ES6 y Harmony) y no se habilitaron de forma predeterminada en Node.js 0.10 o 0.12. Desde Node.js 4.x, "Todas las funciones de envío [ES2015], que V8 considera estables, están activadas de forma predeterminada en Node.js y NO requieren ningún tipo de indicador de tiempo de ejecución". Node.js docs tiene una visión general de qué características de ES2015 están habilitadas de forma predeterminada y cuáles requieren un indicador de tiempo de ejecución . Entonces al actualizar a Node.js 4.xo más reciente, el error debería desaparecer.

Para habilitar algunas de las características de ECMAScript 2015 (incluyendo const y let ) en Node.js 0.10 y 0.12; inicie su programa de nodo con una bandera de armonía, de lo contrario obtendrá un error de sintaxis. Por ejemplo:

node --harmony app.js

Todo depende de qué lado se encuentra su js estricto. Recomendaría usar el modo estricto con const declaraciones en su servidor e iniciar el servidor con el indicador de armonía. Para el lado del cliente, debe usar Babel o una herramienta similar para convertir ES2015 a ES5, ya que no todos los navegadores del cliente admiten las declaraciones const .


cd / npm install -g nave nave use 6.11.1 node app.js