javascript - Discord.js 如果功能问题
问题描述
我在这里有这个简单的代码:
let stars = args[0]
if(stars === 0) {
let starsEmoji = `0 stars`
} else if(stars == 1) {
let starsEmoji = `1 stars`
} else if(stars == 2) {
let starsEmoji = `2 stars`
}else if(stars == 3) {
let starsEmoji = `3 stars`
}else if(stars == 4) {
let starsEmoji = `4 stars`
}else if(stars == 5) {
let starsEmoji = `5 stars`
}
我在这里尝试做的是在 arg[0] 等于 0 到 5 时定义 starsEmoji 但问题是即使 arg[0] 是一个数字,当尝试在另一个代码行中使用 starsEmoji 时它也会给我错误它给了我错误ReferenceError: starsEmoji is not defined
我在代码的开头
if(isNaN(args[0])) return
if(args[0] > 5) return
确保它是一个数字,不太确定这有什么问题
解决方案
有一个更简单的解决方案,但是首先要检查的是确保starsEmoji
在您计划使用它的范围内。确保这一点的最简单方法是在全局范围内定义它。
而不是这样做else if ... else if ... else if
,只需使用模板文字来动态连接您的字符串。
if(isNaN(args[0])) return
if(args[0] > 5 || args[0] < 0) return
// Define Variable outside of any scope
let starsEmoji = '';
// Instead of stacking else-if's, use template literals
starsEmoji = `${args[0]} stars`;