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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 28.05.2010, 17:56
camelot вне форума Посмотреть профиль Отправить личное сообщение для camelot Найти все сообщения от camelot
  № 15  
Ответить с цитированием
camelot

Регистрация: Jul 2006
Сообщений: 26
Цитата:
Сообщение от AzagThoth Посмотреть сообщение
Чем не устраивает isNaN
Зачем городить сравнения вообще.
вот вы везде везде где у вас переменная Number прежде чем её использовать вы проверяете её isNaN и ещё наверное проверяет её тип typeof и чтобы быть 100% увереным ещё и instanceof Number и чтобы добить до конца parseInt, да?

бывает случаи когда переменная не инициализирована или другого типа и получается так, что это приводит к очень печальным последствиям.
например при восходящем или нисходящем приведении типа когда ссылка на мувиклип или объект превращается в undefiened или null. а если вы ещё и работаете с динамическими данными и трудно поймать такое условие - вам будет стоить громадных усилий и времени поймать в чем проблема.

например:

Код AS1/AS2:
class A
{
   public var testVar:Number = 10;
}
 
var mc:MovieClip = attachMovie("AfromLibrary", "instanceOfA", 0); // или createEmptyMovieClip("instanceOfA", 0) - кому как нравится
mc.__proto__ = A.prototype;
var instA:A = A(mc);
var resultValue:Number = instA.testVar + 10;
if (resultValue:Number >= 0 )
{
  trace("all ok");
}
else
{
  unloadMovie(_level0);
}
а всего то ошибка class A extends MovieClip.
в результате cтроки:
Код AS1/AS2:
var instA:A = A(mc); //instA = null
var resultValue:Number = instA.testVar + 10; // resultValue = NaN
if (resultValue >= 0 ) // читайте выше, что даёт NaN >= 0


з.ю. ради бога, не придирайтесь к примеру. выдумал по быстрому

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

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

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


 


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


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