프로그래밍 언어/JAVA

JavaScript 링크 "#" vs "javascript : void (0)"

Rateye 2021. 12. 19. 14:33
728x90
반응형
질문 : JavaScript 링크 "#"또는 "javascript : void (0)"에는 어떤 "href"값을 사용해야합니까?

다음은 JavaScript 코드 실행만을 목적으로하는 링크를 작성하는 두 가지 방법입니다. 기능, 페이지로드 속도, 유효성 검사 목적 등에서 어느 것이 더 낫습니까?

function myJsFunc() {
    alert("myJsFunc");
}
<a href="#" onclick="myJsFunc();">Run JavaScript Code</a>

또는

function myJsFunc() {
    alert("myJsFunc");
}
 <a href="javascript:void(0)" onclick="myJsFunc();">Run JavaScript Code</a>
답변

javascript:void(0) 합니다.

세 가지 이유. # 사용을 장려하면 필연적으로 다음과 같은 함수의 반환 값을 사용하게됩니다.

function doSomething() {
    //Some code
    return false;
}

그러나 그들은 사용에 잊지 return doSomething() 의 onclick에 그냥 사용 doSomething() .

# 을 피하는 두 번째 이유는 최종 return false; 호출 된 함수에서 오류가 발생하면 실행되지 않습니다. 따라서 개발자는 호출 된 함수에서 오류를 적절히 처리하는 것을 기억해야합니다.

onclick 이벤트 속성이 동적으로 할당되는 경우가 있기 때문입니다. 특정 연결 방법 또는 다른 방법에 대해 함수를 코딩하지 않고도 함수를 호출하거나 동적으로 할당 할 수있는 것을 선호합니다. 따라서 onclick (또는 기타)은 다음과 같습니다.

onclick="someFunc.call(this)"

또는

onclick="someFunc.apply(this, arguments)"

javascript:void(0) 하면 위의 모든 두통을 피할 수 있으며 단점의 예를 찾지 못했습니다.

따라서 혼자 개발자라면 분명히 스스로 선택할 수 있지만, 팀으로 일한다면 다음 중 하나를 명시해야합니다.

사용 href="#" onclick 항상 return false; 포함하는지 확인하십시오. onclick 속성에 함수를 동적으로 연결하는 경우 오류를 발생시키지 않고 false 반환하는지 확인합니다.

또는

href="javascript:void(0)"

두 번째는 의사 소통이 훨씬 쉽습니다.

출처 : https://stackoverflow.com/questions/134845/which-href-value-should-i-use-for-javascript-links-or-javascriptvoid0
728x90
반응형