if判断语句利用变量的undefined进行输入值的确定,以及如何输入数据到一个状态变量
// little try in tht if judgement
// 声明但是未初始化的变量的值就是undefined
// 在if语句的判断中会自动转换为Boolean类型值.从而!nickname就是true了!
> var nickname
undefined
> !nickname
true
> var nickname = 29
undefined
> nickname
29
> !nickname
false
// Eg:接收到的第一份数据应当是用户输入的昵称!
if (!nickname) {
if (users[data]) {
conn.write('\033[93m> nickname already in use. try again:\033[39m ');
return;
} else {
nickname = data;
users[nickname] = conn;
for (var i in users) {
users[i].write('\033[90m > ' + nickname + ' joined the room\033[39m\n');
}
}
}
else {
//否则视为聊天信息
//这里使用了 i != nickname 确保消息发送给出了自己以外的其他客户端
for (var i in users) {
if (i != nickname) {
users[i].write('\033[96m > ' + nickname + ':\033[39m ' + data + '\n');
}
}
}