campusboy

while, if и null в JS

14 posts in this topic

Начал изучать JS и столкнулся с проблемой. Пишу

<script>
var index = true;
while (index){
    var name = prompt("Ваше имя", "Семён Семёныч");
    if (name){
        document.write ("Привет, " + name);
        index = false;
    }
}
</script>

или 

<script>
var index = true;
while (index){
    var name = prompt("Ваше имя", "Семён Семёныч");
    if (name != null){
        document.write ("Привет, " + name);
        index = false;
    }
}
</script>

Но всё равно, если не ввести имя, то выкидывает "Привет, null". Почему? Конечно, можно сделать через do while всё (так и в видеоуроке), но вот поставил цель разобраться в вопросе. Что-то в php таких проблем у меня не было  :(

Share this post


Link to post
Share on other sites

Сам отвечаю на вопрос. Вот так работает:

<script>
var index = true;
while (index){
    var name = prompt("Ваше имя", "Семён Семёныч");
    if (name != "null"){
        document.write ("Привет, " + name);
        index = false;
    }
}
</script>

Почему-то null идет как строчка, получается так?

Share this post


Link to post
Share on other sites

Когда вы нажимаете ок введя пустое имя функция prompt возвращает пустую строку, когда вы нажимаете cancel  функция prompt возвращает string null который ничем не отличается от обычной строки, javascript как известно работает в браузере и это зависит от браузера, советую вам в изучении javascript всегда в таких ситуациях использовать typeof для проверки переменных.

campusboy likes this

Share this post


Link to post
Share on other sites

Когда вы нажимаете ок введя пустое имя функция prompt возвращает пустую строку, когда вы нажимаете cancel  функция prompt возвращает string null который ничем не отличается от обычной строки, javascript как известно работает в браузере и это зависит от браузера, советую вам в изучении javascript всегда в таких ситуациях использовать typeof для проверки переменных.

Большое спасибо за ответ. Урок (от Специалист) просто 2011 года и показывается на старом Эксплоуре. Может тогда это и прокативало. Вот как там сделано:

<script type="text/javascript">
var name;
do {
    name = prompt("Ваше имя", "");
}
while ((name == null) || (name == ""))

document.write ("Привет, " + name);

</script>

После повтора,урока у меня не заработало, как у лектора. Видать, браузеры изменились. Ещё раз спасибо за наводку.

styoplotr likes this

Share this post


Link to post
Share on other sites

Как я понял php вы владеете поэтому советую вам не смотреть видеоуроки они мешают думать, читайте книжки фленагана например или стандарты mdn, решайте задачи, задавайте вопросы, видеоуроки  заставляют повторять а не думать. 

campusboy likes this

Share this post


Link to post
Share on other sites

Как я понял php вы владеете поэтому советую вам не смотреть видеоуроки они мешают думать, читайте книжки фленагана например или стандарты mdn, решайте задачи, задавайте вопросы, видеоуроки  заставляют повторять а не думать. 

Не могу согласиться. Смотря как их смотреть. Благодаря этим видеоурокам я смог изучить основы PHP с лёгкостью, а вот по книгам так и не смог. Видеоуроки - это как быстрое погружение в среду. Так я проглядел курсы PHP на одном дыхании, повторяя преподавателя, выполняя его задания и сверяя. После видеоуроков, когда стал свои правки в сайты, конечно, видео уже не открывал повторно, а сразу шёл на php.su, к примеру, и вникал как работает та или иная функции, разбирался более глубоко. С книгами у меня так быстро не получалось, не завлекала меня. А теперь, когда разобрался, не так уж и сложно кажется разбираться в мануалах  :) Потому решил теперь так JS освоить, проглядеть видеоуроки, а затем засесть за мануалы. Думаете, это лишняя трата времени? Ну а вообще JS ради AJAX стал изучать, да и лишним 100% не будет, ведь на нем квери завязано и другие библиотеки, а также (если не ошибаюсь) на JS завязано написание андроид-приложений. Спасибо за советы по книжечке, сейчас поищу. И да, что-то не могу нормально мануала по JS найти (javascript.ru совершенно не нравится).

styoplotr likes this

Share this post


Link to post
Share on other sites

 

 

Не могу согласиться. Смотря как их смотреть. Благодаря этим видеоурокам я смог изучить основы PHP с лёгкостью, а вот по книгам так и не смог. Видеоуроки - это как быстрое погружение в среду.

Я поэтому уточнил что с php вы знакомы и второй язык программирования дастся конечно легче, можно обойтись без видеоуроков, но как вам больше подуше. 

https://developer.mozilla.org/ru/docs/Web/JavaScript

это руководство 

http://www.books.ru/books/javascript-podrobnoe-rukovodstvo-6-e-izdanie-1814274/

это книга 

 

Javascript самый популярный язык программирования в мире, на нем можно писать : фронтенд, бекенд, десктоп и мобильные приложения и с каждым днем становится все популярнее. 

campusboy likes this

Share this post


Link to post
Share on other sites

Чаще всего видео уроки обучают только нескольким навыкам, например: создание слайдеров, выпадающее меню и т.д. Но не дает полноценной работы для написания даже самых простых программ, таких как конвертер и прочих. Человек который не понял суть и логику работы скриптов, будет обучен только некоторым вещам. 

campusboy likes this

Share this post


Link to post
Share on other sites

Я поэтому уточнил что с php вы знакомы и второй язык программирования дастся конечно легче, можно обойтись без видеоуроков, но как вам больше подуше. 

https://developer.mozilla.org/ru/docs/Web/JavaScript

это руководство 

http://www.books.ru/books/javascript-podrobnoe-rukovodstvo-6-e-izdanie-1814274/

это книга 

 

Javascript самый популярный язык программирования в мире, на нем можно писать : фронтенд, бекенд, десктоп и мобильные приложения и с каждым днем становится все популярнее. 

Спасибо отдельное за сайт, очень приятный и толковый, странно, что в поиске никогда его не выдаёт. Книжечка тоже внушительная. В общем-то, думаю, этого на первый порах более, чем достаточно.

 

Чаще всего видео уроки обучают только нескольким навыкам, например: создание слайдеров, выпадающее меню и т.д. Но не дает полноценной работы для написания даже самых простых программ, таких как конвертер и прочих. Человек который не понял суть и логику работы скриптов, будет обучен только некоторым вещам. 

Вы отчасти правы, но не в моём случае. Однако, спасибо большое за мнение!

styoplotr likes this

Share this post


Link to post
Share on other sites

а также (если не ошибаюсь) на JS завязано написание андроид-приложений.

Ошибаетесь!

Naruto likes this

Share this post


Link to post
Share on other sites

Но всё равно, если не ввести имя, то выкидывает "Привет, null". Почему? 

 

потому что в js undefined, а не null

Share this post


Link to post
Share on other sites

а также (если не ошибаюсь) на JS завязано написание андроид-приложений.

Вы ошибаетесь. JAVA и JAVASCRIPT это далеко не одно и тоже. Если вы хотите в дальнейшем ударится в android разработку то учите JAVA, но также можно уйти на C/C++

campusboy likes this

Share this post


Link to post
Share on other sites

Вы ошибаетесь. JAVA и JAVASCRIPT это далеко не одно и тоже. Если вы хотите в дальнейшем ударится в android разработку то учите JAVA, но также можно уйти на C/C++

Спасибо большое за совет. Пока JAVASCRIPT поучу, он как-то ближе web, чаще требуется его знание в разработке у меня. Всё такое интересное, жаль жизнь коротка  :)

Share this post


Link to post
Share on other sites

Спасибо большое за совет. Пока JAVASCRIPT поучу, он как-то ближе web, чаще требуется его знание в разработке у меня. Всё такое интересное, жаль жизнь коротка  :)

Выучить новый язык программирования не так сложно, если был опыт с другим языком. Но выучить всё невозможно. Запомните, что даже создатель языка программирования не знает его полностью.

campusboy likes this

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.