Ik krijg de foutmelding:
SyntaxError: missing ) na argumentenlijst
Met dit javascript:
var nav = document.getElementsByClassName('nav-coll');
for (var i = 0; i < button.length; i++) {
nav[i].addEventListener('click',function(){
console.log('haha');
}
}, false);
};
Wat betekent deze fout?
Antwoord 1, autoriteit 100%
Je hebt een extra afsluiting }
in je functie.
var nav = document.getElementsByClassName('nav-coll');
for (var i = 0; i < button.length; i++) {
nav[i].addEventListener('click',function(){
console.log('haha');
} // <== remove this brace
}, false);
};
Je zou eigenlijk iets als JSHintof JSLintom deze dingen te helpen vinden. Deze tools kunnen worden geïntegreerd met veel editors en IDE’s, of u kunt gewoon een codefragment in de bovenstaande websites plakken en om een analyse vragen.
Antwoord 2, autoriteit 31%
Je hebt een extra }
gekregen voor velen, zoals hieronder te zien is:
var nav = document.getElementsByClassName('nav-coll');
for (var i = 0; i < button.length; i++) {
nav[i].addEventListener('click',function(){
console.log('haha');
} // <-- REMOVE THIS :)
}, false);
};
Een zeer goede tool hiervoor is jsFiddle. Ik heb een fiddle gemaakt met uw ongeldige code en wanneer u op de knop TidyUp
klikt, wordt uw code opgemaakt, waardoor het duidelijker wordt als er mogelijke fouten zijn met ontbrekende accolades.
DEMO– Uw code in een viool, speel maar 🙂
Antwoord 3, autoriteit 4%
gewoon posten voor het geval iemand anders dezelfde fout heeft…
Ik gebruikte ‘wait’ buiten een ‘async’-functie en om welke reden dan ook resulteert dit in een ‘missing ) after argument list’-fout.
De oplossing was om de functie asynchroon te maken
function functionName(args) {}
wordt
async function functionName(args) {}
Antwoord 4
Ik kreeg dezelfde fout en ik dacht dat met het toegenomen gebruik van ES6 en string-interpolatie, steeds meer mensen dezelfde fout zouden gaan maken die ik deed met Template Literals:
Aanvankelijk heb ik een verklaring als volgt vastgelegd:
console.log(`Metadata: ${data}`);
Maar veranderde het toen en vergat de ${}
te verwijderen:
console.log('Metadata: ' + JSON.stringify(${data}));
Antwoord 5
Net als bij Josh McGee, probeerde ik await
te gebruiken in de globale scope, wat, aangezien het geen async
-functie is, een foutmelding geeft. Zie hiervoor oplossingen.