9

私はJavaScriptが初めてで、JSLintを介して検証しようとしています。グローバルに使用して検証するには、「use strict」をどこに置く必要がありますか?

これにより、「ステートメントの位置に予期しない式 'use strict' があります。」というエラーが表示されます。

    "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>');
4

2 に答える 2

6

ドキュメントによると、 browserJSLintのオプション"use strict";は、グローバル レベルでの使用を自動的に無効にします。私の知る限り、それをオンに戻す方法はありません。

以下を使用して、ブラウザー オプションをオフにし、オプションと同じ事前宣言されたグローバルを取得できbrowserます。

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

または、すべてのコードを IIFE でラップし、"use strict";その先頭で使用することもできます。

または、 JSHint (より多くのオプションがあります) に切り替え、そのstrict: globalオプションを使用"use strict";してグローバル スコープで許可することもできます。

于 2016-02-09T16:55:17.980 に答える
1

'use strict' は通常、関数の開始時に使用されます。あなたのコードでは、すべてをIIFEでラップするだけで、「厳密な使用」が有効になります

(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>');
})();
于 2016-02-09T16:51:13.973 に答える