javascript - SyntaxError: Bruk av const i streng modus


Jeg jobber med node.js, og i en av mine js-filer bruker jeg const i "strict mode". Når jeg prøver å kjøre det, får jeg en feil:

SyntaxError: Use of const in strict mode.

Hva er den beste praksisen for å gjøre dette?

Rediger :

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

Svar #1

const og let er en del av ECMAScript 2015 (også kjent som ES6 og Harmony), og var ikke aktivert som standard i Node.js 0.10 eller 0.12. Siden Node.js 4.x, «Alle leverte [ES2015]-funksjoner, som V8 betrakter som stabile, er slått på som standard i Node.js og krever IKKE noen form for runtime-flag.» Node.js-dokumentasjonen har en oversikt over hvilke ES2015-funksjoner som er aktivert som standard, og hvilke som krever et runtime-flag. Så ved å oppgradere til Node.js 4.x eller nyere bør feilen forsvinne.

For å aktivere noen av ECMAScript 2015-funksjonene (inkludert const og let) i Node.js 0.10 og 0.12; start node-programmet ditt med en harmony-flag, ellers vil du få en syntaksfeil. For eksempel:

node --harmony app.js

Alt avhenger av hvilken side din strenge js er plassert. Jeg vil anbefale å bruke streng modus med const-deklarasjoner på serversiden din og starte serveren med harmony-flagget. For klientsiden bør du bruke Babel eller et lignende verktøy for å konvertere ES2015 til ES5, siden ikke alle nettlesere på klientsiden støtter const-deklarasjonene.

Svar #2

Hvis dette skjer i nodejs, skyldes det en eldre versjon av nodejs. Oppdater node ved å bruke,

1) Tøm NPMs cache:

sudo npm cache clean -f

2) Installer en liten hjelper kalt 'n'

sudo npm install -g n

3) Installer siste stabile versjon av NodeJS

sudo n stable

Oppdater Node.js-instruksjonene hentet fra, https://stackoverflow.com/a/19584407/698072

Svar #3

Vanligvis oppstår denne feilen når versjonen av Node som koden kjøres mot er eldre enn forventet. (dvs. 0.12 eller eldre).

hvis du bruker nvm, vennligst sørg for at du har riktig versjon av node i bruk. Du kan sjekke kompatibiliteten på node.green for const under streng modus

Jeg fant et lignende problem i et annet innlegg og postet mitt svar der i detalj

Svar #4

Et viktig steg etter at du oppdaterer noden din er å koble din node-binærfil til den nyeste installerte nodeversjonen

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

Svar #5

Dette er sannsynligvis ikke løsningen for alle, men det var det for meg.

Hvis du bruker NVM, kan det hende du ikke har aktivert riktig versjon av node for koden du kjører. Etter omstart endres standardversjonen av node tilbake til systemets standard.

Støtte på dette når jeg jobbet med react-native som hadde fungert fint. Bare bruk nvm for å bruke riktig versjon av node for å løse dette problemet.

Relaterte artikler