![]() |
if(var>=0) пропускает в себя var=undefined. Почему?
Привет всем!
Никто не подскажет почему такой код: var a:Number; if(a>=0) trace(a); в трэйсе выдает undefined? Ну то есть, то что undefined это понятно, не понятно, почему трэйс выполняется. |
напиши так
Код:
if(a>=0 and a) trace(a); |
and устарел лет пять назад.
А по поводу трейса — автоматические приведение типов. |
т.е. undefined он переводит в 0?
|
Скорее сначала в false, а потом в ноль. Ну или сразу в ноль. Проверить проблематично.
|
Кстати, довольно серьезный баг.
|
Баг? Где ты видишь баг?
|
Цитата:
|
Операторы >=, <=, >, < работают одинаково и занимаются автоматическим приведением типов 0 никак не больше нуля (это в случае с >). А оператор сравнения сравнивает по типу. Числа с числами, строки со строками, а остальное будет равно, только если ссылаются на один объект. Хотя, по идее, == должен привести к типу Number, но этого не делает. Надо эксперименты провести.
|
А после приведения тип там точно должен быть 0? может там NaN?
|
| Часовой пояс GMT +4, время: 17:55. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.