Jump to content
  • 0

Вопрос по null


bangmother
 Share

Question

Только начал изучать Javascript и вот возник вопрос.

Есть код

<script type="text/javascript">

var name = prompt("Введите своё имя","");

if ( !name )

name = "незнакомец";

var s = ("<h1>Привет, "+name+"!</h1>");

document.write(s);

</script>

Хочу что бы человек вводил свое имя. Если вводит, то выводится сообщение "Привет, "имя"". А если не вводит то выводится "Привет, незнакомец".

Теперь вопрос

Почему когда человек нажимает "Отмена" или на крестик, то выводится "Привет, null" / Я думал что (!name) = не имя, тоесть false/// null же является false чего он выводится, а не "незнакомец" ???

Тут такая же ерунда

<script type="text/javascript">

var name;

do

{

name = prompt ("Введите ваше имя","");

}while ( !name )

var s = ("<h1>Привет, "+name+"!</h1>");

document.write(s);

</script>

Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 0

Интересно в чем же там может быть загвоздка у ТС, поскольку у меня все выводится как надо. Особенно интересно как может null выводиться во втором случае, если поле пустым нельзя оставить..

Link to comment
Share on other sites

  • 0

prompt возвращает строку "null" если нажать отмена. По этому и не получается.

<script>

var name = prompt("Введите своё имя","");

if (name == "null" || name == "")
name = "незнакомец";

var s = ("<h1>Привет, "+name+"!</h1>");
document.write(s);
</script>

У меня только так получилось заставить его работать как надо.

Edited by Duddits
Link to comment
Share on other sites

  • 0

Нарыл такое

Нельзя использовать переменную name

Она уже есть в глобальной области видимости до Вас.

И Chrome принудительно приводит ее к строке, чтобы вы туда не пытались положить.

Потому вариант


var vname = prompt("Введите своё имя","");
if (!vname) {
vname = "незнакомец";
}
var s = ("<h1>Привет, "+vname+"!</h1>");
document.write(s);

работает. А так вы лишаете имени пользователя с ником null :mellow:

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy