Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 08.05.2011, 13:34
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 1  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Question Зачем нужно жесткое равенство в АС3? ===

Почитал вот эти доки http://livedocs.adobe.com/flash/9.0/...trict_equality

И пришел для себя к выводу, что этот оператор абсолютно бесполезен в АС3.
Тем не менее, много раз, даже на этом форуме, видел как некоторые используют его в своих кодах.
Зачем?

Есть ли вообще реальные случаи, когда это необходимо?

Старый 08.05.2011, 14:07
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 2  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Не помню ни одного случая, когда он понадобился. Вроде как формально логика отличается от "==" и вроде как должен где-то пригодится при разборе динамических данных. Но ситуаций не возникало.

Говорят, работает быстрее - т.е. на сравнении ссылок можно юзать.
На сравнении динамических данных, вытянутых из amf от сервера - просто опасно - серверисты там в своем PHP могут запросто и строку вместо числа отдать.
На сравнении данных от flashVars или из XML - просто бессымысленно, надо к числу строки приводить перед сравнением, если передаются числовые данные.


Последний раз редактировалось expl; 08.05.2011 в 14:11.
Старый 08.05.2011, 14:11
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 3  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Цитата:
Говорят, работает быстрее - т.е. на сравнении ссылок можно юзать.
Даже если это и так, то очень незначительно.

Как написано в оф доках:
Цитата:
The strict equality (===) operator differs from the equality (==) operator in only two ways:
The strict equality operator performs automatic data conversion only for the number types (Number, int, and uint), whereas the equality operator performs automatic data conversion for all primitive data types.
When comparing null and undefined, the strict equality operator returns false.
Т.е. едва ли в реальном коде это может пригодиться. Я даже не могу представить сутуацию, где это можно использовать по назначению

Старый 08.05.2011, 14:11
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 4  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
Работает быстрее - точно. Где то здесь есть тема с результатами тестов. Там видно и подмечено что операторы === и !== работают быстрее чем == и !=.
Когда позволяет ситуация ставлю === и !==.

Старый 08.05.2011, 14:12
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 5  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
Код:
null == undefined // true
null === undefined // false

Старый 08.05.2011, 14:20
honest_man вне форума Посмотреть профиль Отправить личное сообщение для honest_man Найти все сообщения от honest_man
  № 6  
Ответить с цитированием
honest_man

Регистрация: Aug 2010
Сообщений: 86
Я так понимаю операторы ==/!= Преобразовывают сравниваемые объекты в один общий тип(если это возможно), а ===/!== не преобразовывают.

Играет роль тип данных?

Старый 08.05.2011, 14:23
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 7  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
да, правильно, это в хелпе написано, а мы тут думаем, какая ситуация должна возникнуть на практике, чтобы ее надо было делать с помощью ===/!==

Старый 08.05.2011, 14:23
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 8  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Цитата:
Сообщение от i.o. Посмотреть сообщение
Код:
null == undefined // true
null === undefined // false
Это и так понятно. Только бесполезно.


Цитата:
Я так понимаю операторы ==/!= Преобразовывают сравниваемые объекты в один общий тип(если это возможно), а ===/!== не преобразовывают.

Играет роль тип данных?
Это происходит только с примитивными типами данных, Number, int, Boolean и т.п.

Старый 08.05.2011, 14:31
honest_man вне форума Посмотреть профиль Отправить личное сообщение для honest_man Найти все сообщения от honest_man
  № 9  
Ответить с цитированием
honest_man

Регистрация: Aug 2010
Сообщений: 86
Цитата:
Сообщение от goodguy Посмотреть сообщение
Это происходит только с примитивными типами данных, Number, int, Boolean и т.п.
Ну да...
Код AS3:
//компилится только в стандартном режиме
trace(3 == "3"); //тру
trace(3 === "3"); //фолс
Так может оно точно так же каботает и с полноценными объектами? Проверяет тип данных?

Добавлено через 3 минуты
К примеру "==" возвращает true когда сравнивается и предок с предком и предок с потомком, а === возвращает тру только когда сравнивается предок с предком?(имеется в виду механизм наследование)

Или я не прав? Поправьте меня ведь я не тэстил ))

Старый 08.05.2011, 14:39
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 10  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
К примеру "==" возвращает true когда сравнивается и предок с предком и предок с потомком, а === возвращает тру только когда сравнивается предок с предком?(имеется в виду механизм наследование)
В обоих случаях сравниваются ссылки на объекты. К механизму наследования это никакого отношения не имеет.

Создать новую тему Ответ Часовой пояс GMT +4, время: 06:40.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 06:40.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.