找出一个套接字是否为null

如何找出一个套接字= null或未定义

我想要实现的例子

if(socket.username == NULL){ givenulldata() } 

这是我的sockets删除断开连接,但有时用户还没有真正离开网站,我不想惹恼他们请刷新页面的东西,当它不需要。 由于删除笔记本电脑上的电池没电或无线连接断开和重新连接(移动设备更常见的问题)等

 socket.on('disconnect', function(data){ if(!socket.username) return; delete username[socket.username]; }); 

undefined和null是falsy值,所以他们转换为布尔结果为false

你可以试试:

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

通过这个,你检查套接字是否不存在或者是否存在,但没有用户名

如何满足主题发起人的问题有一个改进的方法:

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

它是如何工作的?

如果!isSocket为true,则会给出空数据。 JS甚至不会去!socket.username ! 但是,如果!isSocket是假的,那么假设isSockt是真实的,JS会检查是否isSockt户名。 这样的代码看起来更干净