You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Así que, un programador es incapaz de cambiar el valor de `Math.PI` o sobrescribirlo.
215
215
216
216
```js run
217
-
Math.PI=3; // Error
217
+
Math.PI=3; // Error, porque tiene writable: false
218
218
219
219
// delete Math.PI tampoco funcionará
220
220
```
221
221
222
-
Convertir una propiedad en no configurable es hacer una calle de una vía. No podremos cambiarla de vuelta, porque `defineProperty` no funciona en propiedades no configurables.
222
+
Tampoco podemos cambiar `Math.PI`a `writable` de vuelta:
223
223
224
-
Para ser precisos, la no configurabilidad impone varias restricciones a `defineProperty`:
225
-
1. No se puede cambiar el indicador `configurable`.
226
-
2. No se puede cambiar el indicador `enumerable`.
227
-
3. No se puede cambiar `writable: false` a `true` (al revés funciona).
228
-
4. No se puede cambiar `get/set` por una propiedad accesoria (pero puede asignarlos si está ausente).
No hay nada en absoluto que podamos hacer con `Math.PI`.
229
230
230
-
**La idea de "configurable: false" es prevenir cambios en los indicadores de la propiedad y su eliminación mientras que permite el cambio de su valor.**
231
+
Convertir una propiedad en no configurable es una calle de un solo sentido. No podremos cambiarla de vuelta con `defineProperty`.
232
+
233
+
**Nota que "configurable: false" impide cambios en los indicadores de la propiedad y su eliminación, pero permite el cambio de su valor.**
231
234
232
235
Aquí `user.name` es "non-configurable", pero aún puede cambiarse (por ser "writable"):
```smart header="Único cambio de atributo posible: writable true -> false"
270
+
Hay una excepción menor acerca del cambio de indicadores.
271
+
272
+
Podemos cambiar `writable: true` a `false` en una propiedad no configurable, impidiendo en más la modificación de su valor (sumando una capa de protección). Aunque no hay vuelta atrás.
Copy file name to clipboardExpand all lines: 2-ui/5-loading/01-onload-ondomcontentloaded/article.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,7 @@
3
3
El ciclo de vida de una página HTML tiene tres eventos importantes:
4
4
5
5
-`DOMContentLoaded` -- el navegador HTML está completamente cargado y el árbol DOM está construido, pero es posible que los recursos externos como `<img>` y hojas de estilo aún no se hayan cargado.
6
-
-`load` -- no solo se carga el HTML, sino también todos los recursos externos: imágenes, estilos, etc.
6
+
-`load` -- no solo se cargó el HTML, sino también todos los recursos externos: imágenes, estilos, etc.
7
7
-`beforeunload/unload` -- el usuario sale de la pagina.
8
8
9
9
Cada evento puede ser útil:
@@ -114,7 +114,7 @@ El siguiente ejemplo muestra correctamente los tamaños de las imágenes, porque
114
114
115
115
```html run height=200 refresh
116
116
<script>
117
-
window.onload=function() { //similar a window.addEventListener('load', (event) => {
117
+
window.onload=function() { //también puede usar window.addEventListener('load', (event) => {
Copy file name to clipboardExpand all lines: 5-network/02-formdata/article.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -168,7 +168,7 @@ El servidor lee el formulario `form-data` y el archivo tal como si de un formula
168
168
169
169
Los objetos [FormData](https://xhr.spec.whatwg.org/#interface-formdata) son utilizados para capturar un formulario HTML y enviarlo utilizando `fetch` u otro método de red.
170
170
171
-
Podemos crear el objeto con `new FormData(form)` desde un formulario HTML, o crearlo sin un formulario en absoluto, y agregar los campos con los siguientes métodos:
171
+
Podemos crear el objeto con `new FormData(form)` desde un formulario HTML, o crear un objeto sin un formulario en absoluto y agregar los campos con los siguientes métodos:
0 commit comments