2016-02-09 15 views
7

Sono nuovo di javascript e sto provando a convalidare tramite JSLint. Dove dovrei mettere "use strict" per usarlo globalmente e validare?Come impostare 'use strict' globalmente con JSLint

Questo mi dà errore "espressione imprevisto 'use strict' in posizione comunicato.":

"use strict"; 
    console.log('doing js in head-section'); 

    function helloWorld() { 
     console.log('called function helloWorld()'); 
     alert('Hello World from a JS function showing an alert!'); 
    } 

    function helloMyNumber() { 
     console.log('called function helloMyNumber()'); 
     var max = 42; 
     var yourLuckyNumber = prompt('Enter your lucky number (between 1 and '+ max +')'); 
     var myLuckyNumber = Math.floor(Math.random()*(max+1)); 
     var paragraph = document.getElementById('luckynumber'); 
     paragraph.innerHTML = paragraph.innerHTML + ' Your lucky number is: ' + yourLuckyNumber + '. Mine is: ' + myLuckyNumber + '. They ' + (yourLuckyNumber == myLuckyNumber ? 'DID ' : 'did NOT ') + 'match!'; 
    } 



    console.log('doing JS in body-section'); 
    document.writeln('<p class="green">Hello World from JS within a body-section in HTML!</p>'); 

risposta

4

Secondo the documentation, l'opzione per browser JSLint disabilita automaticamente l'uso della "use strict"; a livello globale. Per quanto ne so, non c'è modo di riaccenderlo.

Si potrebbe disattivare l'opzione del browser, e ottenere gli stessi globali predichiarati come l'opzione browser utilizzando:

/*global 
Audio, clearInterval, clearTimeout, document, event, history, Image, location, name, navigator, Option, screen, setInterval, setTimeout, XMLHttpRequest 
*/ 

In alternativa si potrebbe avvolgere tutto il codice in un IIFE e utilizzare "use strict"; in cima esso.

In alternativa si potrebbe passare a JSHint (ha più opzioni), e utilizzare l'opzione strict: global per consentire "use strict"; in ambito globale.

0

'use strict' viene utilizzato in genere all'inizio di funzioni. Per il vostro codice, vorrei solo avvolgere il tutto in un IIFE, che renderebbe 'use strict' valida

(function() { 
    "use strict"; 
    console.log('doing js in head-section'); 

    function helloWorld() { 
     console.log('called function helloWorld()'); 
     alert('Hello World from a JS function showing an alert!'); 
    } 

    function helloMyNumber() { 
     console.log('called function helloMyNumber()'); 
     var max = 42; 
     var yourLuckyNumber = prompt('Enter your lucky number (between 1 and '+ max +')'); 
     var myLuckyNumber = Math.floor(Math.random()*(max+1)); 
     var paragraph = document.getElementById('luckynumber'); 
     paragraph.innerHTML = paragraph.innerHTML + ' Your lucky number is: ' + yourLuckyNumber + '. Mine is: ' + myLuckyNumber + '. They ' + (yourLuckyNumber == myLuckyNumber ? 'DID ' : 'did NOT ') + 'match!'; 
    } 



    console.log('doing JS in body-section'); 
    document.writeln('<p class="green">Hello World from JS within a body-section in HTML!</p>'); 
})(); 
+3

'" use strict ";' è perfettamente valido all'inizio di un file. –