Cannot read property of undefined javascript // No se puede leer propiedad de undefined javascritp
Trabajando con objetos en Javascrip para AngularJS me encontré con el problema de las propiedades de objetos vacíos, es decir, si tengo algo como:
$scope.auto = {};
if($scope.auto.color == "rojo")
{..}
me resultará el error: cannot read color of undefined dado que en realidad no la tiene.
Por esta razón, debemos validar antes que de verdad tenga una propiedad definida.
Si ponemos algo como:
if($scope.auto.color != "undefined")
o
if($scope.auto.color != undefined)
o
if(typeof($scope.auto.color) != undefined)
el error persistirá dado que para comparar solicitamos de nueva cuenta la propiedad pero esta no existe, por lo tanto sólo basta con preguntar si simplemente existe y eso quedaría algo así:
if($scope.auto.color)
{..}
y listo. Intersando ¿no?
De esta manera primero nos aseguramos que haya algo qué comparar para después proceder. Si necesitas un if de cualquiera forma, anídalo a esta comparación y así te aseguras de esquivar tal error.