如果浏览器不支持ES6模板文字,则创建错误消息

Wiz*_*mer 0 javascript internet-explorer internet-explorer-11

我一直在JavaScript中使用字符串文字。如果不支持字符串文字,我希望显示一条错误消息。 我可以用吗

我的想法是,我将创建一个函数来查看浏览器是否可以正确解析插入字符串的字符串

    var supportsStringInterpulation = false;
try {
    var stringInsert = 'is a';
    var stringTestExpected = "this " + stringInsert + " test";
    var stringTestAccual = `this ${stringInsert} test`;
    supportsStringInterpolation  = stringTestAccual === stringTestExpected;
}
catch (err) { console.error("failed to render ` ")}
Run Code Online (Sandbox Code Playgroud)

如果对的话什么都不做

如果错误,则浏览器不支持,然后创建并给出错误消息。

现在的问题是,当我在IE 11中调试时,预期的行为是它将失败测试并supportsStringInterpulation = false进一步发送 到我的代码,但它似乎中断并停止了对该脚本的处理。

问题1

有没有办法将bool值返回到“当前浏览器是否支持 ES6模板文字

T.J*_*der 5

是。这是以下用途的合法用途之一eval

var supportsTemplateLiterals = false;
try {
    eval("`foo`");
    supportsTemplateLiterals = true;
}
catch (e) {
}
console.log("Supports template literals? " + supportsTemplateLiterals);
Run Code Online (Sandbox Code Playgroud)

之所以可以使用它,是因为主要代码是在ES2015之前的JavaScript引擎上进行解析的,但是ins中eval 却没有。解析模板文字上的扼流圈。

在Chrome,Firefox,Edge等设备上,

支持模板文字吗?真正

在IE(任何版本)上,它显示:

支持模板文字吗?假