"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > setTimeout에 문자열을 전달해야 합니까?

setTimeout에 문자열을 전달해야 합니까?

2024-11-08에 게시됨
검색:260

Is It Ever Necessary to Pass Strings to setTimeout?

setTimeout에 문자열 전달: 필요성에 대한 질문

많은 개발자는 성능 문제, 잠재적인 보안 위험 및 지원 중단으로 인해 setTimeout에 문자열을 전달하는 관행에 눈살을 찌푸립니다. 상태. 그러나 이 구문이 도움이 될 수 있는 드문 시나리오가 있을 수 있습니다.

지원 중단 논쟁

setTimeout 및 setInterval의 기존 구문에는 실행할 코드를 나타내는 문자열을 전달하는 것이 포함되었습니다. 예:

setTimeout('doSomething(someVar)', 10000);

그러나 최신 JavaScript에서는 대신 함수 참조 사용을 권장합니다.

setTimeout(function() {
    doSomething(someVar);
}, 10000);

문자열에 대한 인수

권장 구문에서 벗어나는 타당한 이유가 있는지 고려할 때 논쟁이 발생합니다. 한 가지 가능한 주장은 전역 범위에 있지만 로컬로 재정의되었을 수 있는 함수나 변수에 액세스하려는 욕구일 수 있습니다.

문자열에 대한 사례

이러한 근거에도 불구하고 문자열을 사용하는 것은 setTimeout에서는 사용하지 않는 것이 좋습니다. 전역 변수는 여전히 창 개체의 속성을 통해 액세스할 수 있습니다. 예를 들어:

setTimeout(window.doSomething(someVar), 10000);

Historical Tolerance

setTimeout 및 setInterval에 대한 인수로 문자열을 허용하는 것은 다음과 같습니다. 역사적 요인에 뿌리를 두고 있다. 초기 버전의 JavaScript는 문자열만 지원했습니다. 함수 참조를 전달하는 기능을 추가하는 것은 나중에 추가되었습니다. 이전 버전과의 호환성을 보장하기 위해 브라우저는 더 이상 사용되지 않더라도 문자열 구문을 계속 허용합니다.

결론

어떤 경우에는 문자열을 setTimeout에 전달하는 것이 기술적으로 가능하지만 일반적으로 그렇지 않습니다. 대체 접근 방식의 가용성으로 인해 권장됩니다. 함수 참조를 사용하면 성능이 향상되고 보안이 향상되며 최신 코드 지침을 준수합니다. 따라서 명확성, 유지 관리 용이성 및 전반적인 코드 품질을 위해 더 이상 사용되지 않는 문자열 구문을 피해야 합니다.

릴리스 선언문 이 글은 1729380675에서 재인쇄되었습니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3