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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果浏览器不支持ES6模板文字,则创建错误消息相关的知识,希望对你有一定的参考价值。

我一直在我的javascript中使用字符串文字。如果不支持字符串文字,我想显示一条错误消息。 caniuse

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

    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 ` ")}

如果它是对的,什么都不做

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

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

问题1

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

答案

是。这是eval的合法用途之一:

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

以上是关于如果浏览器不支持ES6模板文字,则创建错误消息的主要内容,如果未能解决你的问题,请参考以下文章

ES6--反引号的标签使用

ES6 模板文字与串联字符串

ES6 模板文字可以在运行时替换(或重用)吗?

ES6多行字符串+模板字符串

如何让浏览器支持ES6语法,步骤详细到小学生都能看懂!

在编译字符串插值实例时,Coffeescript是否始终使用ES6模板文字?