JS简单if else代码报Declaration or statement expected错误原因
问题根因
代码存在两处语法错误,直接触发「Declaration or statement expected」报错:
- 常量声明关键字使用错误:JavaScript 中没有
constant这个变量声明关键字,声明常量的正确关键字是const,拼写错误会直接导致语法解析失败。 - 条件语句末尾多写了分号:你在
if (bill > 50 && bill < 300)、else if (bill < 50 || bill > 300)两个条件的闭合圆括号后都加了分号;。JS 语法中分号代表单条语句结束,这意味着if/else if语句在分号位置就已经终止,后面紧跟的大括号会被识别为独立的普通代码块,后续的else if、else分支找不到匹配的前置if结构,解析器就会抛出语法错误。
额外逻辑提示:当前判断条件没有覆盖bill=50、bill=300两个边界值,这两个值会走到else分支输出No tip,如果业务规则要求50-300区间(含边界)按15%计算小费,需要调整条件中的比较运算符。
修正后可运行代码
const bill = 275; let tip = 0; let total = 0; if (bill > 50 && bill < 300) { tip = 0.15 * bill; console.log("tip", tip, "bill", bill) } else if (bill < 50 || bill > 300) { tip = 0.20 * bill; console.log("tip", tip, "bill", bill) } else { console.log("No tip") } total = bill + tip; console.log("total", total)
上述代码运行后正常输出结果:
tip 41.25 bill 275 total 316.25
内容的提问来源于stack exchange,提问作者Abhishek yadav
相关产品推荐
相关产品推荐

