Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2014, 20:46   #1
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию Не могу понять строку кода. Подскажите что тут происходит

Привет ребята.

Есть одна строка кода которую я не могу понять

Код HTML:
r = r === "true" ? !0 : r === "false" ? !1 : r === "null" ? null : +r + "" === r ? +r : D.test(r) ? v.parseJSON(r) : r
вот эту часть вообще не понимаю.

Код HTML:
r === "null" ? null : +r + "" === r ? +r : D.test(r) ? v.parseJSON(r) : r
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/

Последний раз редактировалось pompiduskus; 04.04.2014 в 21:54. Причина: Очепятка
pompiduskus вне форума Ответить с цитированием
Старый 05.04.2014, 14:19   #2
TranceSmile
Смайлик :)
Форумчанин
 
Аватар для TranceSmile
 
Регистрация: 12.12.2010
Сообщений: 445
По умолчанию

почитайте о тернарном операторе и поймешь ) http://msdn.microsoft.com/ru-ru/libr...(v=vs.94).aspx
Самый перспективный framework Yii (c)
TranceSmile вне форума Ответить с цитированием
Старый 06.04.2014, 02:20   #3
z87jC3Mf
Новичок
Джуниор
 
Регистрация: 06.04.2014
Сообщений: 1
По умолчанию

Цитата:
Сообщение от pompiduskus Посмотреть сообщение
вот эту часть вообще не понимаю.

Код HTML:
r === "null" ? null : +r + "" === r ? +r : D.test(r) ? v.parseJSON(r) : r
Код:
+r + "" === r
вернёт true в случае если r присвоена строка которую можно интерпретировать как число.

Кто-то очень любящий типы решил писать на js.
Вероятно дальше по коду будет кучка typeof()
z87jC3Mf вне форума Ответить с цитированием
Старый 06.04.2014, 06:14   #4
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,964
По умолчанию

Ребята, в Жабе не очень, но "===", это знак эквивалентности. Как это работает (в С++ такого нет), понятия не имею, что это такое.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 06.04.2014, 08:20   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

=== говорит что нужно сравнить не только значения но и типы.
Грубый пример: Сравнить 5 вещественную и 5 целочисленную.
Но это оч. грубый пример
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.04.2014, 08:26   #6
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,964
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
=== говорит что нужно сравнить не только значения но и типы.
Грубый пример: Сравнить 5 вещественную и 5 целочисленную.
Но это оч. грубый пример
Не силён в этом (не-было необходимости). Для меня, и по-сей день, не определено, чем отличается функция сравнения от эквивалентности. Не, подсознательно, я это понимаю, но как это реализовали в коде, ди сих пор не втемяшу.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 06.04.2014, 08:34   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Ну я тоже не особо использую этот опер, так что не могу примеров привести. Нужно рыться в книгах и статьях.
Вот хотя бы тут: http://javascript.ru/comparison-operators
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.04.2014, 08:42   #8
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,964
По умолчанию

Я бы смог и порыться, но сегодня настроение не то .
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 06.04.2014, 12:27   #9
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
Ребята, в Жабе не очень, но "===", это знак эквивалентности. Как это работает (в С++ такого нет), понятия не имею, что это такое.
Код:

5 == '5'; // true
5 === '5'; // false
0 == ''; // true
0 === ''; // false
0 == []; //true
0 === []; //false
!'5' == []; // true
И все в том же духе
Строгое сравнение надежней, позволяет избежать ошибок из-за приведения типов. Ну, еще и быстрее, т.к. не юзает приведение типов.
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 06.04.2014, 20:25   #10
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

Большое спасибо.
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/
pompiduskus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
НЕ могу понять в чем проблема моего кода paul_8 C# (си шарп) 5 13.10.2013 23:06
Void(не могу понять участок кода) Slems Visual C++ 5 03.09.2012 16:53
не могу понять, что за ошибка (С++) mpdasa Помощь студентам 1 25.06.2012 19:56
не могу понять, что за скрипт ZET78 JavaScript, Ajax 0 18.08.2010 00:10
Задачка на Pascal, объясните, пожалуйста, я тут что -то не могу разобраться. Girlo4ka Помощь студентам 6 28.12.2008 15:02