JavaScript参数未定义问题:prompt传参后结果异常排查
问题原因与修复方案
错误根源
你调用yearsret函数时,只给它传了第一个参数(出生年份的输入结果),函数需要的第二个参数firstname完全没传,所以函数内部的firstname自然是undefined。而你把输入名字的prompt放在了console.log的第二个参数位置,这就导致它会在函数返回的字符串后面单独打印,最终出现undefined retires in 27 years Ali的奇怪结果。
修复后的代码
'use strict'; const yearsret = (year, firstname) => { const age = 2022 - year; const retir = 60 - age; return `${firstname} retires in ${retir} years`; } // 将名字输入作为第二个参数传入yearsret函数 console.log(yearsret(prompt('请输入你的出生年份'), prompt('请输入你的名字')));
关键说明
- 调用函数时,必须把两个
prompt的结果都放进yearsret的括号里,作为它的两个参数,这样函数才能正确拿到firstname的值。 - 修复后,函数返回的字符串会正常显示名字,也不会在末尾额外打印名字了。
内容的提问来源于stack exchange,提问作者Ak98
相关产品推荐
相关产品推荐

