【发布时间】:2018-01-24 02:57:36
【问题描述】:
我一直在我的 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
有没有办法将布尔值返回到问题“当前浏览器是否支持ES6模板文字?
【问题讨论】:
-
您不能使用
try/catch解析错误,只能用于运行时错误。 -
是的,这很困难。
-
这实际上是一个非常有趣的问题——如何对语法糖进行特征检测。您无法按照上面建议的方式对其进行测试,因为如果不支持 '`' 则根本不会解析,因此您可能应该对本机 String 对象进行一些属性检查,以判断它是否是 ES6 字符串。 . 我想不出任何适合 OTOMH 的属性。研究时间!
-
只要使用 babelJS 就不用再关心这种头痛了
-
BabelJS '好的,我会看看。
标签: javascript internet-explorer internet-explorer-11