Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Discord.js If函数问题_Javascript_Discord.js - Fatal编程技术网

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的解决方案即可。我认为“如果”语句中仍然有“让”语句,这就是为什么。这应该是公认的答案