Aquí, en la siguiente función, estamos convirtiendo una URL de datos en un blob.
En realidad, estoy escribiendo un componente que puede recortar una imagen... si uso const... entonces la pantalla se congela... y no pasa nada... solo después de usar var parece estar funcionando.
const dataURLtoBlob = (dataurl) => { var arr = dataurl.split(","); var mime = arr[0].match(/:(.*?);/)[1]; var bstr = atob(arr[1]); var n = bstr.length; var u8arr = new Uint8Array(n); n--; while (n) { u8arr[n] = bstr.charCodeAt(n); } return new Blob([u8arr], { type: mime }); }; ¿Por qué se usa var aquí? ¿Es porque var se puede reasignar y modificar?
En javascript hay 3 formas de declarar una variable, var, let, const.
var tiene un alcance global, lo que significa que se puede leer en toda la función si la declaras dentro de ella, por lo que incluso si declaraste una variable dentro mientras la escribiste, podrías leerla fuera de ella.
let tiene un alcance de bloque, lo que significa que solo se puede leer desde el bloque en el que lo declaraste. Por lo tanto, si declaraste una variable en el while que escribiste, solo podrías leerla dentro del bloque while.
Y const es como let pero no se puede reasignar.
En su caso, todas sus variables se declaran en el mismo bloque y nunca se reasignan, por lo que let, var y const funcionarían de la misma manera. Sin embargo, la forma más correcta de declararlos sería const, ya que nunca se reasignan, pero todo funcionaría.
Aquí hay más información: https://www.geeksforgeeks.org/difference- between -var-let-and-const-keywords-in-javascript/