Value1.length está enviando un error indefinido, sin embargo, los otros dos valores no lo están. ¿Por qué solo el primer valor no funciona correctamente?
placeOrder.addEventListener("click", function (e) { e.preventDefault(); var value1 = input1.value; if (value1.length < 1) { value1 = 0; coffeeTotal = 0; } else { coffeeTotal = coffeePrice * parseInt(value1); } var value2 = input2.value; if (value2.length < 1) { value2 = 0; bagelTotal = 0; } else { bagelTotal = bagelPrice * parseInt(value2); } var value3 = input3.value; if (value3.length < 1) { value3 = 0; biscottiTotal = 0; } else { biscottiTotal = biscottiPrice * parseInt(value3); } var total = coffeeTotal + bagelTotal + biscottiTotal; console.log(total); });¿Qué significa realmente typeerror: no se pueden leer los "valores" de propiedad de undefined?
Para comprender esto, primero debe comprender qué significa no estar definido en JavaScript. Echemos un vistazo a un ejemplo simple usando variables:
// This line is a variable declaration // we create it, but do not assign it a value // so it is undefined var a; // In this line we declare and assign a variable // this is not undefined var b = 6;Algo no está definido cuando es un objeto que se espera que contenga una referencia a un valor, pero de hecho no hace referencia a nada. Así que tienes que comprobar el valor de tu input1.