이전 코드를 몇 번 보았습니다. 온라인 코드를 많이 사용했습니다. 요소를 인수로 필요로하는 빌린 함수를 몇 개 보았지만이 요소는 요소 자체 나 .getElementById()
에서 사용할 문자열로 전달할 수 있습니다. 다음 중 어느 것이 더 낫습니까? 그 이유는 무엇입니까? 아니면 더 좋은 버전이 있습니까? (안전 나은 = 판독 표준)Javascript : 인수를 사용하면 유효한 HTML 요소가 생성됩니다. (유형 확인)
버전 1
function doSomethingWithElem(elem /*, param2, ... */) {
elem = (typeof elem === 'string' || elem instanceof String)
? document.getElementById(elem)
: elem;
// more stuff...
}
버전 2
function doSomething2(elem /*, param2, ... */) {
elem = document.getElementById(elem) || elem;
// more stuff...
}
gEBI를 호출하기 전에 문자열 인스턴스의 하나 개 검사되는 주요 차이점을 다른 한쪽은 undefined
을 반환하는 gEBI를 사용합니다. 어느 누구도 elem
이 실제로 HTMLElement
인지 확인하지 않습니다.
잘 정의 된 API (사용자가 은이 문자열 또는 HTML 요소를 전달해야 함을 알고 있음)을 가정하면 유형 검사는 얼마나 중요합니까? 유형 검사는 스크립트 사용자가 자신의 코드를 디버그하는 데 주로 필요합니까? 버전 2를 엉망으로 만들 수있는 gEBI의 가능한 반환 값과 같은 이들 중 하나의 미묘한 함정이 있습니까?