我正在使用javascript并使用在Chrome和Firefox上运行的“模板文字”,但在Internet Explorer(IE)上却无法使用。
var a = 10;
console.log(`${a}`)
答案 0 :(得分:2)
模板文字是ES6,并且IE支持很少 ES6功能。它不支持模板文字。
对于您正在做的事情,只需执行console.log(a)
即可:
var a = 10;
console.log(a)
但是,如果您的实际代码比这更复杂,则要么必须手动连接,例如:
`foo${somevar}bar${somevar2}baz`
更改为
'foo' + somevar + 'bar' + somevar2 + 'baz'
或者,如果您喜欢模板文字的语法并且不喜欢纯字符串连接,那么更好的选择是将Babel集成到构建过程中,以将ES6 +语法(包括模板文字)自动转换为ES5 :
(Babel不仅会转换模板文字,还会将几乎所有全部转换为ES5,例如解构,箭头函数,async
/ await
等等-对于较大的代码库,这非常重要,它允许程序员以最新和最好的语言版本编写代码,同时保持与IE等古代浏览器的兼容性)
答案 1 :(得分:0)
另一种选择是,如果您已经在使用lodash
来切换到其_.template
函数,那么它不仅具有模板功能,而且具有wide browser support
的功能。
var compiled = _.template('hello ${ user }!');
console.log(compiled({ 'user': 'pebbles' })); // => 'hello pebbles!'
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>