Javascript-форум (https://javascript.ru/forum/)
-   Opera, Safari и др. (https://javascript.ru/forum/css-html-browser/)
-   -   Непонятное поведение в Chrome (https://javascript.ru/forum/css-html-browser/42052-neponyatnoe-povedenie-v-chrome.html)

main.c 10.10.2013 16:22

Непонятное поведение в Chrome
 
<script>	
    var name = prompt('Кто пришёл?', '');
    if (name == null) { 
        alert('Вход отменён');
    }
</script>

В хроме условный оператор не срабатывает, но в опере и мозиле срабатывает, а теперь самое интересное, при смене имени переменной на userName (в принципе на любое другое, отличное от name), скрипт в хроме уже работает:
<script>	
    var userName = prompt('Кто пришёл?', '');
    if (userName == null) { 
        alert('Вход отменён');
    }
</script>

С чем связано такое поведение, может в хроме это слово рарезервировано или проблема в чём-то другом?

ksa 10.10.2013 18:13

Цитата:

Сообщение от main.c
С чем связано такое поведение, может в хроме это слово рарезервировано или проблема в чём-то другом?

Вот что там "работает"... :)

var name = prompt('Кто пришёл?', '');
    if (name == 'null') { 
        alert('Вход отменён');
    };

рони 10.10.2013 18:49

:-?
var name = prompt('Кто пришёл?', '');
    if (!name) {
        alert('Вход отменён');
    };

devote 10.10.2013 18:52

Цитата:

Сообщение от main.c
отличное от name

потому что name это зарезервированное слово в пространстве window
alert(typeof name); // 'string' а не 'undefined'

тогда как:
alert(typeof userName); // 'undefined'


Часовой пояс GMT +3, время: 15:23.