Javascript 如何检查用户是否未定义
我有一个向用户发送DM的命令,用户定义如下:Javascript 如何检查用户是否未定义,javascript,node.js,discord.js,Javascript,Node.js,Discord.js,我有一个向用户发送DM的命令,用户定义如下: let用户; if(message.indications.users.first()){ user=message.indications.users.first(); }else if(参数[0]){ user=message.guild.members.cache.get(args[0]).user; } 但是,如果我ping了一个不在此服务器中的用户,或者写了一个不是@user的东西,它会发送一个错误“user is not defined
let用户;
if(message.indications.users.first()){
user=message.indications.users.first();
}else if(参数[0]){
user=message.guild.members.cache.get(args[0]).user;
}
但是,如果我ping了一个不在此服务器中的用户,或者写了一个不是
@user
的东西,它会发送一个错误“user is not defined”。我试着让if(user==“undefined”)
,但它只是在到达它之前中止,或者如果我把它放在上面,它就不能工作。对于javascript中的每个变量,你可以选择它的类型,显然,如果它的类型是==“undefined”
,那么它就是未定义的
if(typeof comment === 'undefined') {
alert('Variable "comment" is undefined.');
}
您当前正在检查是否已将用户编写为“未定义”,而实际上您希望查看该用户是否为未定义的
代码的另一个问题是,
args[0]
将在您希望下一个参数时返回命令名,args[1]
。
完整示例:
let用户;
if(message.indications.users.first()){
user=message.indications.users.first();
}else if(参数[0]){
user=message.guild.members.fetch(args[1]).user;
}否则{
return message.channel.send(“请提供用户”);//如果消息作者未提供用户,则发送
}
if(user==undefined)return message.chanel.send(“我找不到您要找的用户”)//如果用户不在当前帮会或不存在,则发送
您可以获取并检查是否存在ID为args[0]
的用户,而不是使用message.guild.members
查找成员,然后从中获取用户。如果它不存在,您可以简单地检查如果(!user)
您不必检查它是否未定义
const user=message.indications.users.first()| | message.client.users.cache.get(args[0]);
如果(!用户)
返回message.channel.send('未提及任何用户');
message.channel.send(`您提到${user}`);
您还可以使用fetch()
来获取用户,而不是依赖缓存
:
let用户;
试一试{
user=message.indications.users.first()| |(wait message.client.users.fetch(args[0]);
}catch(错误){console.log(错误);}
如果(!用户)
返回message.channel.send('未提及任何用户');
message.channel.send(`您提到${user}`);
从未定义中删除引号if(user==undefined)
我尝试过,但问题是它在这里给了我错误:user=message.guild.members.cache.get(args[0]).user;因此,我没有找到if语句只需替换此if(message.indications.users?.first())
,因为当解析的消息由于找不到活动用户而找不到适当的提及时,用户会被拒绝undefined@TinoZ我不知道要替换什么,我尝试添加什么?到if语句,但它给了我SyntaxError:意外的标记“.”我尝试了,但问题是它在这里给了我错误:user=message.guild.members.cache.get(args[0]).user;因此,我没有看到if语句。请不要只发布代码作为答案,还要解释代码的作用以及它是如何解决问题的。带有解释的答案通常更有用、质量更好,并且更有可能吸引选票。它在到达if statementuser=message.guild.members.cache.get(args[0]).user之前给出错误;在这里我更新了我的答案,请再看一看。即使按照你说的做了,它仍然会给出错误:UnhandledPromisejectionWarning:TypeError:无法读取的属性“user”undefined@newbie听起来这个错误不是来自您提供给我们的代码。非常感谢,如果我可以问一下,您建议使用哪种方法?当我运行它时,不依赖缓存的方法发送了一条消息,没有提到任何用户,并给了我这个错误:DiscordAPIError:Invalid Form Body user\u id:Value“”不是雪花。
参数[0]
的值是多少?雪花(670320674266546186
)还是这个字符串args[0]
应该是雪花。args[0]的值是@user,基本上,你可以在ping之前添加\并发送消息。太好了,不客气!