Estoy siguiendo la solución de https://stackoverflow.com/a/519157/18736427 .
Sin embargo, la consola me da un error de que el objeto que quiero probar no está undefined ...
Quiero probar si el objeto existe, si no, entonces console.log('False'); , pero me da un error de 'indefinido'
Por lo tanto, el código después de la verificación no se puede ejecutar... ¿Cómo soluciono esto?
const btn = document.querySelector('.test'); //const data1 = { //apple: 'red' //} const data2 = { banana: 'yellow' } btn.addEventListener('click', function() { if (typeof data1['apple'] !== 'undefined') { console.log('Yes'); } console.log('False'); }); <button class="test">Check</button>probar:
const btn = document.getElementsByClassName('test'); if (typeof data["apple"] !== 'undefined') { console.log('Yes'); } debe usar data.apple o data["apple"] .
Compruebe si realmente necesita proporcionar variables red y apple .
En su lugar, use cadenas para las claves
const btn = document.querySelector('.test'); const data = { apple: "red" } btn.addEventListener('click', function() { if (typeof data["apple"] !== 'undefined') { console.log('Yes'); } console.log('False'); });Si una variable de objeto no está definida, el javascript realmente no arroja un error. Pero si escribes la variable red , el navegador intenta asignar el valor real a la variable red . Entonces, el método realmente funciona: la variable red indefinida.
const btn = document.querySelector('.test'); const data = { //do not define apple } btn.addEventListener('click', function() { if (typeof data['apple'] !== 'undefined') { console.log('Yes'); } console.log('False'); }); <button class="test">Check</button>