const mainebutton = document.querySelector("button"); const body = document.body; function randomcolorgenerator() { const red = Math.floor(Math.random() * 256); const green = Math.floor(Math.random() * 256); const blue = Math.floor(Math.random() * 256); console.log(red, green, blue); const randomcolor = "rgb ${red},${green},${blue}"; return randomcolor; } mainebutton.addEventListener("click", () => { const randomcolor = randomcolorgenerator(); console.log(randomcolor); });TypeError no capturado: no se puede leer la propiedad de indefinido (leyendo 'verde')
Debe agregar un detector de eventos ' DOMContentLoaded ' para esperar a que se cargue su contenido antes de acceder a ellos
Y agregando lo que ha mencionado @Luca, esto debería ser una cadena de plantilla:
"rgb ${red},${green},${blue}" debe encerrarse entre `` no ""
document.addEventListener('DOMContentLoaded', function(){ const mainebutton = document.querySelector("button"); const body = document.body; function randomcolorgenerator() { const red = Math.floor(Math.random() * 256); const green = Math.floor(Math.random() * 256); const blue = Math.floor(Math.random() * 256);console.log(red, green, blue); const randomcolor = `rgb ${red},${green},${blue}`; return randomcolor; } mainebutton.addEventListener("click", () => { const randomcolor = randomcolorgenerator(); console.log(randomcolor); }); }) <button>SHOW ME A COLOR</button>