빨간색 코드 없이 사용도 가능한가봐요....?
본문
<audio id=audioPlayer src=https://blog.kakaocdn.net/dn/BHP32/btrcHD0bM3V/4jjMou5AV4PHq9N81H2tR1/tfile.mp3 controls></audio>
<script>
var audioPlayer = document.getElementById('audioPlayer');
window.addEventListener("DOMContentLoaded", function() { audioPlayer.play(); });
</script>
비타주리 님 코드 (https://sir.kr/g5_tip/17541) 보니까
아이디 경우엔 빨간색 라인 없이 사용도 가능하던데, JS 표준 방식 중 하나인가요?
답변 1
예. 가능합니다.
그 이유는 클래스나 네임과는 다르게 아이디는 그 문서에서 하나 밖에 없기 때문에 그냥 맨몸뚱아리 호출이 가능합니다.
이게 표준인가 비표준인가의 문제는
우리가 변수를 선언할 때 그 타입이 Number 인지 String 인지 선언해야 표준이라고 주장하는 사람이 있는가 하면
자바스크립트는 그걸 선언하지 않아도 알아서 능동적으로 읽기 때문에 굳이 선언해 줄 필요가 없다고 주장하는 사람의 문제와 같다고 봅니다.
물론 예외도 있어요.
XMLHttpRequest 로 문서를 로드할 때 그 문서에서는 숫자로 주었는데도 로드하고 나면 문자가 되어버려서 다시 Number 형 치환을 해 주어야 할 경우도 생기거든요.
어쨌거나 이를테면 div 가 10개가 있고 그 div 의 아이디를 my1 부터 my10까지 주었다면
<script>
for (i=1; i<=10;i++) {
this["my"+i].style.display = "none";
}
</script>
이리되면 div 10개가 다 안 보이게 됩니다.
마치 클래스를 배열처럼 불러 쓰듯이요.
글쎄요. 저는 웹코딩을 시작한 이후 초창기 짧은 시기를 제외하고는 모두 아이디를 저렇게 써 왔습니다.