Ama*_*ght 6 javascript string null if-statement node.js
我正在尝试学习Node并具有以下功能:
this.logMeIn = function(username,stream) {
if (username === null || username.length() < 1) {
stream.write("Invalid username, please try again:\n\r");
return false;
} else {
....etc
Run Code Online (Sandbox Code Playgroud)
而且我正在通过它
if (!client.loggedIn) {
if (client.logMeIn(String(data.match(/\S+/)),stream)) {
Run Code Online (Sandbox Code Playgroud)
我已经尝试了==和===,但我仍然遇到错误,因为用户名没有检测到它是null,而username.length()失败了:
if (username === null || username.length() < 1) {
^
TypeError: Property 'length' of object null is not a function
Run Code Online (Sandbox Code Playgroud)
我确信Node不会评估||的第二部分 在if语句中,当第一部分为true时 - 但我无法理解为什么if语句的第一部分在username为null对象时评估为false.有人能帮我理解我做错了什么吗?
你传递String(data.match(/\S+/))的username参数,所以,当data.match(/\S+/)是null,你"null"不null为username,如:
String(null) === "null"
Run Code Online (Sandbox Code Playgroud)
所以你需要改变你的状况:
if( username === null || username === "null" || username.length < 1 )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38563 次 |
| 最近记录: |