Por primera vez en mis lecciones, vi una forma completamente diferente de escribir código javascript:
let parentClicks = 0; let childClicks = 0; document .getElementById("parent") .addEventListener("click", function() { document .getElementById("parent-count") .innerText = (++parentClicks) + ''; }); document .getElementById("child") .addEventListener("click", function(e) { e.preventDefault(); e.stopPropagation(); document .getElementById("child-count") .innerText = (++childClicks) + ''; });Estaba acostumbrado a ver el anidamiento en HTML/CSS, pero es la primera vez que lo veo en JS.
¿Estos puntos significan esto o tienen un significado completamente diferente?
document.getElementById("parent") document.addEventListener("click", function() { document.getElementById("parent-count") document.innerText = (++parentClicks) + ''; }); document.getElementById("child") document.addEventListener("click", function(e) { e.preventDefault(); e.stopPropagation(); document.getElementById("child-count") document.innerText = (++childClicks) + ''; });JavaScript es muy permisivo con los espacios en blanco. Para algunos tipos de construcciones sintácticas, poner una nueva línea entre ellas es lo mismo que si no hubiera una nueva línea allí. (Después de todo, es posible escribir cualquier JavaScript en una sola línea de código, es solo que es ilegible)
Este:
document .getElementById("parent") .addEventListener("click", function() { document .getElementById("parent-count") .innerText = (++parentClicks) + ''; });es equivalente a
document.getElementById("parent").addEventListener("click", function() { document.getElementById("parent-count").innerText = (++parentClicks) + ''; }); No es lo mismo que su document.addEventListener("click", function() { porque su código agrega un detector de clics al documento, no al padre.
Donde uno decide poner nuevas líneas es a menudo una elección puramente estilística, generalmente en un esfuerzo por hacer que el código sea más fácil de entender de un vistazo. Por ejemplo , uno bien puede preferir hacer esto
let ranges = SpreadsheetApp.getActive() .createTextFinder("Example 1") .matchEntireCell(true) .matchCase(true) .matchFormulaText(false) .ignoreDiacritics(true) .findAll();en vez de
let ranges = SpreadsheetApp.getActive().createTextFinder("Example 1").matchEntireCell(true).matchCase(true).matchFormulaText(false).ignoreDiacritics(true).findAll();aunque signifique exactamente lo mismo.
La sangría se ve mal en su primer ejemplo. Algunos editores pueden arrojar un error por esto. Siempre es mejor usar el período juntos en tales escenarios. Para ex-documento. y no documento.