Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> switch что-то странное творится... 
:(
    Опции темы
taral
Дата 21.12.2008, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 17.1.2008

Репутация: нет
Всего: нет



У меня начали творится странные вещи со switch.
Код

var key = /[a-z]+/i.exec('format_12');
if(key == 'format') {alert(1)}

Выводит алерт.
Код

var key = /[a-z]+/i.exec('format_12');
switch(key) {
    case 'format': alert(23);
}

Не выводит.
Код

var key = 'format';
switch(key) {
    case 'format': alert(23);
}

Выводит.
То или у меня под вечер голова не варит. или... Подскажите что это за дела?
PM MAIL   Вверх
taral
Дата 21.12.2008, 23:09 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 17.1.2008

Репутация: нет
Всего: нет



Ага проблему нашел.
при использовании регулярных выражений результат возвращается не типа string (масив, и как я дубина сразу не смекнул... вечер сонный...)
При сравнении через if значения уравниваются в типах. Потому key переводился в тип string и сравнение проходило.
В случае же с switch - key не менял тип. И совпадений не находилось.
Все исправляется используя key.toString() (вручную меняя тип)

Это сообщение отредактировал(а) taral - 21.12.2008, 23:11
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0375 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.