Javascript Discord.js If函数问题
我这里有一个简单的代码:Javascript Discord.js If函数问题,javascript,discord.js,Javascript,Discord.js,我这里有一个简单的代码: let stars=args[0] 如果(星===0){ 让starsEmoji=`0星` }否则如果(星==1){ 让starsEmoji=`1颗星` }否则如果(星==2){ 让starsEmoji=`2颗星` }否则如果(星==3){ 让starsEmoji=`3颗星` }否则如果(星==4){ 让starsEmoji=`4颗星` }否则如果(星==5){ 让starsEmoji=`5颗星` } 我在这里试图做的是在arg[0]等于0到5时定义StarsMoj
let stars=args[0]
如果(星===0){
让starsEmoji=`0星`
}否则如果(星==1){
让starsEmoji=`1颗星`
}否则如果(星==2){
让starsEmoji=`2颗星`
}否则如果(星==3){
让starsEmoji=`3颗星`
}否则如果(星==4){
让starsEmoji=`4颗星`
}否则如果(星==5){
让starsEmoji=`5颗星`
}
我在这里试图做的是在arg[0]等于0到5时定义StarsMoji,但问题是,即使arg[0]是一个数字,它也会给我错误。在另一个代码行中尝试使用StarsMoji时,它会给我错误ReferenceError:StarsMoji未定义
我在代码的开头有
if(isNaN(args[0])返回
如果(参数[0]>5)返回
为了确保这是一个数字,不太确定这有什么问题,根据您得到的错误,可能starsEmoji是“if”语句的局部。也就是说,它不能在外面使用。试着把
让starsEmoji
放在if语句之前,去掉里面所有的“let”,然后尝试一下。希望这有帮助:)您的代码应该是这样的:
let stars = args[0]
let starsEmoji
if (stars === 0) {
starsEmoji = `0 stars`
} else if(stars == 1) {
starsEmoji = `1 stars`
} else if(stars == 2) {
starsEmoji = `2 stars`
}else if(stars == 3) {
starsEmoji = `3 stars`
}else if(stars == 4) {
starsEmoji = `4 stars`
}else if(stars == 5) {
starsEmoji = `5 stars`
}
let
语句声明一个块作用域局部变量,可以选择将其初始化为一个值。如果在If块中定义starsEmoji,块外的代码将无法访问starsEmoji
,因为它没有在块外初始化有一个更简单的解决方案,但是首先要检查的是确保starsEmoji
在您计划使用它的范围内。确保这一点的最简单方法是在全局范围内定义它
如果。。。否则如果。。。否则,如果,只需使用模板文本来动态连接字符串
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`;
if(isNaN(args[0])返回
if(args[0]>5 | | args[0]<0)返回
//在任何范围外定义变量
让starsEmoji='';
//使用模板文字,而不是堆叠else if
starsEmoji=`${args[0]}stars`;
在将其放入另一行并使用starsEmoji后,它显示为“未定义”啊,只需复制/粘贴YoungChoi的解决方案即可。我认为“如果”语句中仍然有“让”语句,这就是为什么。这应该是公认的答案