Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.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 如何检查用户是否未定义_Javascript_Node.js_Discord.js - Fatal编程技术网

Javascript 如何检查用户是否未定义

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

我有一个向用户发送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”。我试着让
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之前添加\并发送消息。太好了,不客气!