window.location=와 window.location.replace()의 차이점은 무엇입니까?
이 두 노선에 차이가 있나요?
var url = "http://www.google.com/";
window.location = url;
window.location.replace(url);
window.location
는 "뒤로"를 클릭하여 현재 페이지로 돌아갈 수 있는 항목을 이력에 추가합니다.
window.location.replace
는 현재 기록 항목을 대체하므로 해당 항목으로 돌아갈 수 없습니다.
다음을 참조해 주세요.
assign(url)
: 된 URL에서 : 공에에 URL 。
replace(url)
: 된 URL에 와의assign()
: " "를 사용한 후"replace()
현재 페이지는 세션 기록에 저장되지 않으므로 사용자가 뒤로 버튼을 사용하여 페이지로 이동할 수 없습니다.
아, 그리고 일반적으로 말하면:
window.location.href = url;
다음 항목보다 선호됩니다.
window.location = url;
TLDR;
location.href
""를 사용하는 것이 .window.location.href
;
그러나 이것을 읽으면 부인할 수 없는 증거를 얻을 수 있을 것이다.
사실은 사용해도 괜찮은데 왜 의문스러운 일을 하냐는 것이다.당신은 좀 더 높은 길을 택해서 해야 할 일을 해야 해요.
location = "#/mypath/otherside"
var sections = location.split('/')
이 코드는 구문적으로나 논리적으로나 유형적으로나 완벽하게 정확해요. 유일하게 잘못된 건 알고 있죠?
정말 그랬어요.location
location.href
이건 어때
var mystring = location = "#/some/spa/route"
의 입니까?mystring
테스트를 하지 않아도 알 수 있는 사람이 있나요?여기서 정확히 무슨 일이 일어날지 아무도 모른다.젠장, 난 이걸 방금 썼는데 그게 뭘 하는지도 모르겠어. location
오브젝트입니다만, 스트링을 할당할 때는 스트링을 전달할지, 위치 오브젝트를 전달할지 지정합니다.이것을 어떻게 실장해야 하는지에 대한 답이 있다고 합시다.모든 브라우저가 동일한 기능을 수행한다고 보장할 수 있습니까?
이것은 거의 모든 브라우저가 동일하게 처리될 것이라고 추측할 수 있습니다.
var mystring = location.href = "#/some/spa/route"
이것을 typescript에 넣으면 type compiler가 이것이 오브젝트라고 하기 때문에 typescript가 파손되는 경우는 어떻게 됩니까?
는 단순한 대화보다 더 .location
되고 ?당신이 어떤 종류의 프로그래머가 되고 싶은지에 대한 이 전환은 무엇입니까?
만약 당신이 이 지름길을 택한다면, 오늘은 괜찮을지도 모른다, 내일은 괜찮을지도 모른다, 영원히 괜찮을지도 모른다, 하지만 당신은 이제 서투른 프로그래머이다.당신에게는 좋지 않을 것이고 실패할 것입니다.
더 많은 물체가 있을 것이다.새로운 구문이 생깁니다.
스트링만 사용해도 오브젝트를 반환하는 게터를 정의할 수 있습니다.가장 나쁜 점은 자신이 올바른 일을 하고 있다고 생각한다는 것입니다.여기 있는 사람들이 수치스럽게 당신을 잘못된 길로 이끌었기 때문에 당신은 이 영리한 방법에 대해 훌륭하다고 생각할 수 있습니다.
var Person.name = {first:"John":last:"Doe"}
console.log(Person.name) // "John Doe"
getters와 setters에서는 이 코드가 실제로 작동하지만, 이것이 가능하다고 해서 'WISE'가 되는 것은 아닙니다.
프로그래밍을 하는 대부분의 사람들은 프로그래밍을 좋아하고 더 나아지는 것을 좋아합니다.지난 몇 년 동안 나는 꽤 능숙해졌고 많은 것을 배웠다.특히 당신이 Libraries를 쓸 때 내가 지금 알고 있는 가장 중요한 것은 일관성과 예측 가능성이다.
꾸준히 할 수 있는 일을 하세요.
+"2"
<--여기에서는 문자열을 수치로 해석합니다.사용하시겠습니까? 아니면 사용하시겠습니까?parseInt("2")
?
어때var num =+"2"
?
당신이 배운 것, 스택오버플로우 마음에서 나는 그리 희망적이지 않다.
이 두 단어를 따라하기 시작하면 일관되고 예측 가능한 단어입니다.스택 오버플로우에 관한 많은 질문에 대한 정답을 알 수 있습니다.
이게 어떻게 성과를 내는지 보여줄게.보통 내가 배치한다.;
제가 쓰는 자바스크립트 줄마다요그게 더 표현력 있다는 거 알아.그게 더 명확하다는 거 알아나는 내 규칙을 지켰다.어느 날 그러지 않기로 결심했어요. 왜요?왜냐하면 많은 사람들이 더 이상 필요없고 자바스크립트도 필요없다고 하기 때문입니다.그래서 이걸 하기로 결심했죠지금은 프로그래머로서의 자신을 확신하고 있기 때문에(언어 습득의 성과를 즐겨야 하기 때문에) 매우 간단한 것을 썼지만 확인하지 않았습니다.쉼표 하나를 지웠기 때문에 쉼표 하나를 삭제하는 것과 같은 간단한 테스트를 다시 할 필요가 없다고 생각했습니다.
es6와 babel에 비슷한 걸 썼는데
var a = "hello world"
(async function(){
//do work
})()
이 코드는 실패해서 알아내는 데 오랜 시간이 걸렸습니다.무슨 이유에선지 그게 본 건
var a = "hello world"(async function(){})()
소스코드 안 깊숙이 숨겨져 있던 '헬로 월드'는 함수가 아니라는 걸 말해줬죠
더 재미있는 노드는 변환된 코드의 소스 맵을 표시하지 않습니다.
너무 많은 시간을 낭비했어ES6가 얼마나 뛰어난지 누군가에게 프레젠테이션하고 나서 디버깅을 시작하고 ES6가 얼마나 두통이 없고 좋은지 보여줘야 했습니다.설득력이 떨어집니다.
이게 당신의 질문에 대한 답변이었기를 바랍니다.이것은 오래된 질문이기 때문에 미래 세대, 아직 배우는 사람들을 위한 것입니다.
어느 쪽이든 상관없다고 사람들이 말할 때 질문한다.더 현명한 경험자가 당신에게 다른 현명함을 말해줄 가능성이 있다.
누군가 위치 객체를 덮어쓰면 어쩌죠?그들은 오래된 브라우저들을 위해 심을 할 것이다.Shimming이 필요한 새로운 기능이 추가되어 3년 된 코드가 실패합니다.
생각해 봐야 할 마지막 메모입니다.
명확하고 명확한 목적의 코드를 작성하는 것은 옳고 그름으로 대답할 수 없는 코드에 도움이 됩니다.이 기능은 코드를 활성화하는 역할을 합니다.
코드 간 간섭을 우려하지 않고 플러그인이나 라이브러리를 더 많이 사용할 수 있습니다.
기록을 위해.사용하다
window.location.href
기원과 솔루션
질문
이이 두두 ?? ?? ?? ??
window.location = "http://www.google.com/";
window.location.replace("http://www.google.com/");
단답
네.
배경 정보
먼저 다음 사항을 알아야 합니다.
window.location = "https://stackoverflow.com"
입니다.window.location.href = "https://stackoverflow.com"
이치노
window.location
VS window.location.replace
window.location:
「 」 「 」 「 」를 로 하고 .window.location = "https://website.com"
으로는 '''로 있다'''window.location.href = "https://website.com"
- Location 객체의 href 속성은 현재 웹 페이지의 URL을 저장합니다.
- href 속성을 변경하면 사용자는 새 URL로 이동합니다.
- 그러면 항목이 기록 목록에 추가됩니다.
- 다음 페이지로 이동한 후, 사용자는 브라우저에서 "뒤로" 단추를 클릭하여 이 페이지로 돌아갈 수 있습니다.
window.location.replace:
- 치환 기능은 기록에 레코드를 추가하지 않고 새 URL로 이동하기 위해 사용됩니다.
- 이 함수는 최상위 엔트리를 덮어쓰고 이력 스택에서 대체합니다.
- '뒤로' 버튼을 클릭하면 다음 페이지로 이동한 후 리디렉션 전에 마지막으로 방문한 페이지로 돌아갈 수 없습니다.
결론:
질문에 답하려면:
이 두, , 리, 우, 우, 우, ,, ,, ,, ,, ,, ,, ,, ,, ,, yes, yes, yes, yes, yes, yes, yes. 그리고 대부분 사실은window.location
를 사용하면 수 있습니다.그 동안 브라우저 이력을 되돌릴 수 .window.location.replace()
는 브라우저 기록으로 되돌릴 수 없기 때문에 이전 URL 레코드는 브라우저 기록에서 삭제됩니다.
보너스: 어느 쪽이 빠릅니까?
하고 있는 는, 다음과 같습니다.window.location = "http://www.google.com/";
입니다.href
에서 더 .window.location.replace("http://www.google.com/");
기능을 업데이트하는 것이 속성을 직접 업데이트하는 것보다 느리기 때문입니다.
★★★의 상세window.location
window.location
는 다음과 같은 오브젝트를 반환합니다.
console.log(window.location);
// This is how the Location object that returns from window.location looks like
{
"ancestorOrigins": {},
"href": "https://stackoverflow.com/",
"origin": "https://stackoverflow.com",
"protocol": "https:",
"host": "stackoverflow.com",
"hostname": "stackoverflow.com",
"port": "",
"pathname": "/",
"search": "",
"hash": ""
}
Location
에는 또한 과 같은 가 .object abject abject about (예)ㄹ 수 있다.
Location.assign()
매개 변수에 지정된 URL에서 리소스를 로드합니다.
Location.reload()
[ Refresh ] URL 입니다.
Location.toString()
합니다.Location location 、입 、h h 、 href、 ref는 、 location location location location location location location location location 。
언급URL : https://stackoverflow.com/questions/1865837/whats-the-difference-between-window-location-and-window-location-replace
'itsource' 카테고리의 다른 글
휴지 상태 조건은 FetchType을 사용하여 여러 번 하위 항목을 반환합니다.열심 (0) | 2022.09.21 |
---|---|
발신인을 제외한 모든 클라이언트에 응답 보내기 (0) | 2022.09.21 |
Python에서 메모리를 명시적으로 해방하려면 어떻게 해야 합니까? (0) | 2022.09.21 |
phpmyadmin에서 대용량 SQL 파일을 가져오는 방법 (0) | 2022.09.21 |
$_SERVER['] 없이 HTTPS를 사용하고 있는지 확인하는 방법HTTPS'] (0) | 2022.09.21 |