Javascript 找出套接字是否等于null

Javascript 找出套接字是否等于null,javascript,node.js,sockets,socket.io,Javascript,Node.js,Sockets,Socket.io,如何确定套接字是否为null或未定义 我想要达到的目标的例子 if(socket.username == NULL){ givenulldata() } 这是我在断开连接时删除的套接字,但是有时用户实际上还没有离开网站,我不想在不需要的时候用请刷新页面的东西来烦扰他们。由于笔记本电脑上的删除电池耗尽或存在wifi断开和重新连接(移动设备更常见的问题)等原因 undefined和null是假值,因此它们将布尔值转换为假值 您可以尝试: if((!socket) || (socket &&

如何确定套接字是否为null或未定义

我想要达到的目标的例子

if(socket.username == NULL){
givenulldata()
}
这是我在断开连接时删除的套接字,但是有时用户实际上还没有离开网站,我不想在不需要的时候用请刷新页面的东西来烦扰他们。由于笔记本电脑上的删除电池耗尽或存在wifi断开和重新连接(移动设备更常见的问题)等原因


undefined和null是假值,因此它们将布尔值转换为假值

您可以尝试:

if((!socket) || (socket && !(socket.username))){
    givenulldata()
}

通过这一点,您可以检查套接字是否不存在,或者它是否存在但没有用户名

有一种改进的方法可以满足主题初学者的问题:

if (!isSocket || !socket.username) {
    givenulldata()
}
它是如何工作的


如果
!isSocket
为true,它将提供空数据。JS甚至不会进入
!socket.username
!但是如果
!isSocket
为false,然后假设isSocket为true,JS检查是否有用户名。这样代码看起来更干净

您能解释一下为什么需要检查这个吗。
io.on('connection',函数(socket){
函数只有在定义了套接字的情况下才起作用。我在用户注销时删除套接字。但是,我发现,当人们最终断开与internet的连接时,它会删除他们的套接字。因此,我认为这将是一个简单的修复方法,找出套接字中是否没有任何内容,然后刷新登录过程。这意味着只要用户在场,并且总是会登录。所以我只需要了解,如何检测套接字是否为null或未定义,或者只是搜索错误。但我也不确定如何做到这一点。好的,然后检查@Dzmtrs answer。
if (!isSocket || !socket.username) {
    givenulldata()
}