Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   if(var>=0) пропускает в себя var=undefined. Почему? (http://www.flasher.ru/forum/showthread.php?t=91915)

Timerlan 11.02.2007 20:32

if(var>=0) пропускает в себя var=undefined. Почему?
 
Привет всем!
Никто не подскажет почему такой код:

var a:Number;
if(a>=0) trace(a);

в трэйсе выдает undefined? Ну то есть, то что undefined это понятно, не понятно, почему трэйс выполняется.

Azy 11.02.2007 20:39

напиши так
Код:

if(a>=0 and a) trace(a);

etc 11.02.2007 20:43

and устарел лет пять назад.

А по поводу трейса — автоматические приведение типов.

Timerlan 11.02.2007 20:48

т.е. undefined он переводит в 0?

etc 11.02.2007 21:02

Скорее сначала в false, а потом в ноль. Ну или сразу в ноль. Проверить проблематично.

aksios 11.02.2007 21:16

Кстати, довольно серьезный баг.

etc 11.02.2007 21:31

Баг? Где ты видишь баг?

aksios 11.02.2007 21:39

Цитата:

Сообщение от __etc
Баг? Где ты видишь баг?

А енто нормально, когда не верно обрабатываются >= , <= , <> но < ,>, ==, работают правильно?

etc 11.02.2007 21:52

Операторы >=, <=, >, < работают одинаково и занимаются автоматическим приведением типов 0 никак не больше нуля (это в случае с >). А оператор сравнения сравнивает по типу. Числа с числами, строки со строками, а остальное будет равно, только если ссылаются на один объект. Хотя, по идее, == должен привести к типу Number, но этого не делает. Надо эксперименты провести.

lowka 11.02.2007 22:08

А после приведения тип там точно должен быть 0? может там NaN?


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

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