判断浏览器是否支持严格模式,我们可以通过以下两种方法来实现。
我们可以使用try...catch语句,在try语句中编写一个无法在严格模式下执行的代码,然后在catch语句中捕获错误,如果没有捕获到错误就代表浏览器支持严格模式。
示例代码:
var isStrictMode;
try {
eval("'use strict'; var x = 1;");
isStrictMode = true;
} catch (e) {
isStrictMode = false;
}
if (isStrictMode) {
console.log("当前浏览器支持严格模式");
} else {
console.log("当前浏览器不支持严格模式");
}
我们可以使用函数严格模式下的一个限制:在严格模式下使用arguments.callee会报错。
示例代码:
function isStrictMode() {
'use strict';
return !this;
}
if (isStrictMode()) {
console.log("当前浏览器支持严格模式");
} else {
console.log("当前浏览器不支持严格模式");
}
在函数isStrictMode中,使用了严格模式下禁止使用的this,因此只有在非严格模式下才能正常执行。通过检测函数返回的结果,就可以判断当前浏览器是否支持严格模式。
以上两种方法均可以判断当前浏览器是否支持严格模式,可以根据实际情况选择使用。