如何使用 JSLint 全局设置 'use strict'
How to set 'use strict' globally with JSLint
我是 javascript 的新手,正在尝试通过 JSLint 进行验证。
我应该把 "use strict" 放在哪里全局使用它并验证?
这给我错误 "Unexpected expression 'use strict' in statement position.":
"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>');
'use strict' 通常用在函数的开头。对于您的代码,我会将其全部包装在一个 IIFE 中,这将使 'use strict' 有效
(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>');
})();
根据 the documentation,JSLint 的 browser
选项自动禁用在全局级别使用 "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";
。
我是 javascript 的新手,正在尝试通过 JSLint 进行验证。 我应该把 "use strict" 放在哪里全局使用它并验证?
这给我错误 "Unexpected expression 'use strict' in statement position.":
"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>');
'use strict' 通常用在函数的开头。对于您的代码,我会将其全部包装在一个 IIFE 中,这将使 'use strict' 有效
(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>');
})();
根据 the documentation,JSLint 的 browser
选项自动禁用在全局级别使用 "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";
。