with javascript window location

javascript - with - ¿Cuál es la diferencia entre window.location=y window.location.replace()?



window.location.replace jquery (2)

¿Hay alguna diferencia entre estas dos líneas?

var url = "http://www.google.com/"; window.location = url; window.location.replace(url);


TLDR;

use location.href o mejor use window.location.href ;

Sin embargo, si lees esto, obtendrás pruebas innegables.

La verdad es que está bien usarlo, pero ¿por qué hacer cosas que son cuestionables? Debes tomar el camino más alto y simplemente hacerlo de la manera que probablemente debería hacerse.

location = "#/mypath/otherside" var sections = location.split(''/'')

Este código es perfectamente correcto en cuanto a la sintaxis, a la lógica, al tipo, ¿sabe qué es lo único que está mal?

tiene location lugar de location.href

que hay de esto

var mystring = location = "#/some/spa/route"

¿ mystring es el valor de mystring ? ¿Alguien realmente sabe sin hacer alguna prueba? Nadie sabe que va a pasar exactamente aquí. Joder, acabo de escribir esto y ni siquiera sé lo que hace. location es un objeto, pero estoy asignando una cadena. Pasará la cadena o pasará el objeto de ubicación. Digamos que hay alguna respuesta a cómo se debe implementar esto. ¿Se puede garantizar que todos los navegadores harán lo mismo?

Esto puedo adivinar que todos los navegadores manejarán lo mismo.

var mystring = location.href = "#/some/spa/route"

¿Y si lo colocas en escritura de tipos, se romperá porque el compilador de tipos dirá que se supone que es un objeto?

Sin embargo, esta conversación es mucho más profunda que el objeto de location . ¿Qué es esta conversión sobre qué tipo de programador quieres ser?

Si toma este atajo, sí podría estar bien hoy, podría estar bien mañana, demonios podría estar bien para siempre, pero señor, ahora es un mal programador. No estará bien para ti y te fallará.

Habrá más objetos. Habrá nueva sintaxis.

Podría definir un captador que solo toma una cuerda, pero devuelve un objeto y la peor parte es que pensará que está haciendo algo correcto, podría pensar que es brillante para este método inteligente porque la gente aquí lo ha llevado de manera vergonzosa.

var Person.name = {first:"John":last:"Doe"} console.log(Person.name) // "John Doe"

Con los que consiguen y los que configuran, este código realmente funcionaría, pero solo porque se puede hacer no significa que sea ''WISE'' hacerlo.

A la mayoría de las personas que están programando les encanta programar y les encanta mejorar. En los últimos años he mejorado bastante y he aprendido mucho. Lo más importante que sé ahora, especialmente cuando escribes bibliotecas, es la consistencia y la previsibilidad.

Haz las cosas que siempre puedes hacer.

+"2" <: aquí mismo se analiza la cadena a un número. ¿Deberías usarlo? o parseInt("2") usar parseInt("2") ?

¿qué hay de var num =+"2" ?

De lo que has aprendido, de la mente de no tengo muchas esperanzas.

Si comienzas a seguir estas 2 palabras consistente y predecible. Sabrá la respuesta correcta a un montón de preguntas sobre .

Déjame mostrarte cómo esto vale la pena. Normalmente lo coloco ; En cada línea de javascript escribo. Sé que es más expresivo. Sé que es más claro. He seguido mis reglas. Un día decidí no hacerlo. ¿Por qué? Porque mucha gente me dice que ya no es necesario y que JavaScript puede prescindir de él. Así que lo que decidí hacer esto. Ahora porque estoy seguro de mí mismo como programador (como debería disfrutar el fruto de dominar un idioma) escribí algo muy simple y no lo comprobé. Borré una coma y pensé que no era necesario volver a realizar una prueba para algo tan simple como eliminar una coma.

Escribí algo similar a esto en es6 y babel.

var a = "hello world" (async function(){ //do work })()

Este código falla y tardó una eternidad en resolverlo. Por alguna razón lo que vio fue

var a = "hello world"(async function(){})()

Oculto en el código fuente que me decía "hola mundo" no es una función.

Para más diversión, el nodo no muestra los mapas fuente del código transpilado.

Perdido tanto tiempo estúpido. También le presenté a alguien cómo ES6 es brillante y luego tuve que empezar a depurar y demostrar cómo es el dolor de cabeza y mejor ES6. No es convincente.

Espero que esto haya respondido a tu pregunta. Esta pregunta antigua es más para la generación futura, las personas que aún están aprendiendo.

Pregunta cuando la gente dice que no importa, de cualquier manera, funciona. Es probable que una persona más sabia y con más experiencia te diga lo contrario.

¿Qué pasa si alguien sobrescribe el objeto de ubicación. Harán un shim para los navegadores más antiguos. Obtendrá algunas características nuevas que deben ser modificadas y su código de 3 años fallará.

Mi última nota para reflexionar sobre.

Escribir código limpio y claro con un propósito específico hace algo para su código que no puede responderse con correcto o incorrecto. Lo que hace es convertir su código en un habilitador.

Puede utilizar más complementos de cosas, bibliotecas sin miedo a la interrupción entre los códigos.

para el registro. utilizar

window.location.href


window.location agrega un elemento a su historial en el que puede (o debería poder) hacer clic en "Atrás" y volver a la página actual.

window.location.replace reemplaza el elemento del historial actual para que no pueda volver a él.

Ver window.location :

assign(url) : cargue el documento en la URL proporcionada.

replace(url) : replace(url) el documento actual por el que se encuentra en la URL proporcionada. La diferencia con el método assign() es que después de usar replace() la página actual no se guardará en el historial de la sesión, lo que significa que el usuario no podrá usar el botón Atrás para navegar hacia ella.

Ah, y en general hablando:

window.location.href = url;

se favorece sobre:

window.location = url;