簡體   English   中英

模板文字語法在 IE11 中不起作用

[英]Template literals syntax is not working in IE11

使用“use strict”指令時,反勾號字符在 IE11 中不被識別為有效字符,而它在其他瀏覽器(例如 Chrome)中工作。

考慮到 IE11 即使在 Windows 10 用戶中仍然廣泛使用,對這種行為的解釋是什么?

 "use strict"; function doIt() { let tt; tt = 50; alert(`${tt}`); alert("test"); } doIt();

錯誤:{“消息”:“無效字符”,“文件名”:“ http://stacksnippets.net/js ”,“lineno”:18,“colno”:17}

如果您查看ECMAScript 6 兼容性表,您會看到 IE11 不支持模板文字。 "use strict"; 語句並沒有真正改變任何東西,因為在確定代碼是否處於嚴格模式之前,它必須首先被解析,但它不能被解析,因為您使用的是解析器無法識別的語法。

如果你想讓你的代碼在 IE11 中工作,你應該用Babel轉譯它。

如果您只想在現代 Javascript 中編寫一個簡短的代碼片段,例如 ES6,但需要在舊瀏覽器(例如 IE11)中運行的普通 Javascript 版本的代碼,您可以使用Babel REPL進行轉譯。

例子:

 let person = { name: "John Doe", city: "Doeville" }; const markup = ` <div class="person"> <h2> ${person.name} </h2> <p class="city">This person lives in ${person.city}.</p> </div> `; document.body.innerHTML = markup;

被轉譯為:

 "use strict"; var person = { name: "John Doe", city: "Doeville" }; var markup = "\\n <div class=\\"person\\">\\n <h2>\\n ".concat(person.name, "\\n </h2>\\n <p class=\\"city\\">This person lives in ").concat(person.city, ".</p>\\n </div>\\n"); document.body.innerHTML = markup;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM