ES6模板字符串未生效?${name}未被正确解析的问题排查
问题核心原因
ES6 模板字符串支持的${变量}插值语法,**要求字符串必须使用反引号(,位于键盘Tab键上方的按键,和单/双引号是不同的按键)包裹**。 你当前代码里使用双引号包裹了包含${name}的字符串,这属于普通ES5字符串,语法解析器会把${name}`当成无特殊含义的普通文本处理,自然不会替换为实际变量值。所有浏览器输出原样文本是完全符合JS语法规则的,和ES6特性兼容性没有关系——目前所有主流现代浏览器都早已完整支持模板字符串特性,不存在多浏览器统一失效的兼容问题。
修正方案
将包裹字符串的双引号替换为反引号即可:
const name = "Stephen"; document.write(`Hey ${name} how are you?`);
运行后就会正常输出预期的Hey Stephen how are you?内容。
内容的提问来源于stack exchange,提问作者Emad El Sammad
相关产品推荐
相关产品推荐

