Javascript window.prompt的值未返回正确的;“长度”;财产价值

Javascript window.prompt的值未返回正确的;“长度”;财产价值,javascript,html,debugging,Javascript,Html,Debugging,我对Javascript有点陌生,我正在努力学习它。我目前正在创建一段代码,它会提示用户输入他们的姓名,并显示是否有5个字符或更多、更少或更准确。但它不断向我显示,它是5个字符,即使它超过5个字符。如果有人能帮我调试,我将不胜感激 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3school.org/1999/xhtml1-transitional.dtd">

我对Javascript有点陌生,我正在努力学习它。我目前正在创建一段代码,它会提示用户输入他们的姓名,并显示是否有5个字符或更多、更少或更准确。但它不断向我显示,它是5个字符,即使它超过5个字符。如果有人能帮我调试,我将不胜感激

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3school.org/1999/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta charset="utf-8" />
        <title>Understanding Javascript</title>
    <script type="text/javascript"
            language="javascript">
    username = prompt("Please enter your name");
    message = "Hello," + username + " Your name has ";
    nameLen = username.Length;
    if (nameLen > 5)
        message = message + "more than ";
    else if (nameLen < 5)
        message = message + "less than ";
    else
        message = message + "exactly ";
    message = message + " 5 characters";

    alert(message)
    </script>
</head>
<body>
</body>
</html>

理解Javascript
用户名=提示(“请输入您的姓名”);
message=“你好,”+username+“您的名字有”;
nameLen=username.Length;
如果(名称>5)
消息=消息+“超过”;
否则如果(名称小于5)
消息=消息+“小于”;
其他的
消息=消息+“准确”;
消息=消息+5个字符;
警报(信息)

问题在于这一行:

nameLen = username.Length;
这一行实际上将
nameLen
设置为
undefined

设置
if
语句的方式

if (nameLen > 5) { // undefined is not greater than 5

} else if (nameLen < 5) { // undefined is not less than 5

} else { // undefined is not equal to 5 either, but who cares? it's a broad else

}
如果(nameLen>5){//undefined不大于5
}如果(nameLen<5){//undefined不小于5,则为else
}else{//undefined也不等于5,但谁在乎呢?这是一个广义的else
}
意味着它将始终进入
else
子句


要解决此问题,只需将
username.Length
更改为
username.Length
。JavaScript是一种区分大小写的语言,因此如果您不小心的话,这些类型的错误将来可能会更频繁地出现。

基本上,
username.length
应该可以解决它。属性名称中的键入错误。这段代码看起来很有效


理解Javascript
用户名=提示(“请输入您的姓名”);
message=“你好,”+username+“您的名字有”;
nameLen=username.length;
如果(名称>5)
消息=消息+“超过”;
否则如果(名称小于5)
消息=消息+“小于”;
否则{
消息=消息+“准确”;
}
消息=消息+5个字符;
警报(信息)
确切语法:

nameLen=username.length


它看起来像一个输入错误-您有
username.Length
,它应该是
username.Length
。您的变量可以有任何您想要的名称,但是
.length
应该都是小写的。哦,谢谢您的提示。我不知道这是一种区分大小写的语言。@Benjaminnguen没问题——记住这一点绝对重要。此外,我建议在分隔
if/else
子句时,始终使用
{
}
-大括号。先前的回答者(现在已经删除了他的回答)误解了您的代码,仅仅是因为您没有花括号,所以包含这样的内容是至关重要的。它绝对区分大小写!如果启用了JavaScript错误报告,您应该能够在浏览器中检查开发人员控制台,它会报告类似这样的问题。