JS函数调用alert弹窗 ${subject}占位符未替换为实参问题
问题复现
function doHomework(subject) { alert("Starting my ${subject} homework."); } doHomework("math");
运行上述代码时,弹窗会直接显示Starting my ${subject} homework.,传入的math参数未被替换。
原因说明
${变量}的插值语法是ES6模板字符串的专属特性,只有用反引号(`,键盘Esc键下方、数字1键左侧的按键输入的符号)包裹的字符串,才会解析其中的占位符、替换为对应变量值。
你当前用普通双引号""包裹字符串,JS引擎会将其识别为静态纯文本,不会处理其中的${subject}占位符,因此参数不会被替换。
修复方式
将包裹字符串的双引号替换为反引号即可,修正后代码:
function doHomework(subject) { alert(`Starting my ${subject} homework.`); } doHomework("math");
修正后运行会正确弹出Starting my math homework.的提示。
内容的提问来源于stack exchange,提问作者rr thurein
相关产品推荐
相关产品推荐

