hasOwnProperty не будет работать, если ключ является объектом, а не строкой.
проверка, что значение равно нулю, не будет работать, если ключ находится в словаре, но с нулевым значением.
Кажется, что оператор in работает постоянно.
var d:Dictionary = new Dictionary();
var a:Object = new Object();
d[a] = 'foo';
var b:Object = new Object();
d[b] = null;
var c:Object = new Object();
trace(a in d);
trace(b in d);
trace(c in d);
Возвращает
true
true
false
Я считаю, что это более правильный ответ, чем приведенный выше.