2017-04-20 24 views
1

私はJavascriptに少し慣れており、それを学びたいと思っています。私は現在、ユーザーに名前を入力するように指示するコードを作成しています.5文字以上、少ない、または正確に表示されていれば表示されます。しかし、それは5以上であるにもかかわらず5文字であることを私に示すことができます。誰かが私のためにこれをデバッグするのに役立つことができたら大いに感謝します。window.promptの値が適切な「長さ」プロパティ値を返さない

<!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> 
+1

「username.Length」があり、「username.length」である必要があります。変数には任意の名前を付けることができますが、 '.length'はすべて小文字にする必要があります。 –

答えて

1

ここでの問題は、この行にある:

nameLen = username.Length; 

この行は、実際にundefinedに等しいnameLenを設定します。

あなた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 

} 

は、それが常にelse句に入ることを意味しています。

この問題を解決するには、username.Lengthusername.lengthに変更するだけです。 JavaScriptは大文字と小文字を区別する言語なので、注意しないとこの種のエラーが今後頻繁に表示されることがあります。

+0

ああ、ありがとう。私はそれが大文字小文字を区別する言語であることを知らなかった。 –

+1

@BenjaminNguyen問題はない - それを覚えておくことは間違いない。さらに、 'if/else'節を分離するときには常に' {'と'} ' - 中括弧を使うことをお勧めします。以前の回答者(答えを削除した人)は、あなたが中括弧を持っていないという理由だけであなたのコードを誤解していました。 – think123

+0

大文字と小文字を区別します。 JavaScriptエラー報告が有効になっていて、このような問題が報告された場合は、ブラウザのデベロッパーコンソールを確認できるはずです。 –

0

基本的には、username.lengthで修正する必要があります。プロパティ名の入力ミス。このコードは動作するように見えます。

 <!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>

0

正確な構文:

NAMELEN = username.length。

関連する問題