일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- now()
- word wrap
- 입력
- primarykey
- 테이블
- 조인
- date_add
- 리눅스 명령어
- DISTINCT
- 생성
- live server
- 집계 함수
- 삭제
- Linux
- MySQL
- 3306
- EQUI
- 데이터베이스
- 줄바꿈
- select
- substring
- DB접속
- 데이터타입
- java
- groupby
- cmd
- foreignkey
- visual studio code
- 서브쿼리
- pytthon
Archives
- Today
- Total
재유's
[JavsScript] JavaScript 특성 본문
JavaScript는 <script> 태그가 서로 분리되어 있어도 실행시에는 하나로 병합되어 동작한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <html> <head> <title>bin page</title> <script type="text/javascript"> var a = 10; </script> </head> <body> <script> var b = 20; </script> ... <script> var c = a + b; </script> </body> </html> |
소스코드 실행시점
HTML파일을 한 라인씩 해석하는 브라우저의 특성상 소스코드의 위치에 따라서 실행시점이 결정되므로
HTML태그를 제어하고자 하는 경우 제어하려는 HTML태그보다 소스코다 나중에 명시되어야 한다.
case1 - <body> 태그 닫기 직전에 스크립트 코드 명시
1 2 3 4 5 6 | <body> <div id="foo">...</div> <script> document.getElementById("foo").innerHTML = "hello"; </script> </body> |
=> 스파게티 코드가 되어 가독성, 유지보수에서 좋지 않다.
case2 - <head> 태그에 스크립트 코드가 함수 단위로 정의 되는 경우
onload 이벤트를 통해서 해당 함수를 호출시킨다.
1 2 3 4 5 6 7 8 9 10 11 12 13 | <html> <head> <title>bin page</title> <script type="text/javascript"> function foo() { ... } </script> </head> <body onload="foo()"> </body> </html> |
=> 브라우저가 HTML태그 전체를 인식할 때 까지 스크립트 실행을 기다려야 하기 때문에
HTML 태그의 id속성값 중복 금지!!!
CSS에서는 id값이 중복될 경우 여러 요소에 대하여 동시에 적용이 가능하지만,
JS의 경우 id속성이 중복될 경우 그 중에서 가장 첫번째 요소만 인식하고 그 외의 요소들은 식별하지 못한다.
그러므로 HTML에서 id속성은 반드시 고유한 값을 사용해야 한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <html> <head> <title>bin page</title> <style> /** 모든 id="hello"에 적용됨 */ #hello {color: red;} </style> <script type="text/javascript"> function foo() { // 첫번째 요소에만 적용됨. document.getElementById("hello").innerHTML = "hello"; } </script> </head> <body onload="foo()"> <div id="hello">...</div> <div id="hello">...</div> <div id="hello">...</div> </body> </html> |
실행결과
(div #hello 첫번째만 바뀐다.)
[Tip!] CSS에서는 클래스 속성만 사용하고, JS에서는 id속성만 사용한다. |
'IT Story > : : JAVASCRIPT' 카테고리의 다른 글
[JavaScript] 객체 (0) | 2019.01.30 |
---|---|
[JavaScript] 함수 정의의 또 다른 방법 (0) | 2019.01.30 |
[JavaScript] 이벤트 (0) | 2019.01.29 |
[JavaScript] 함수 (0) | 2019.01.28 |
[JavaScript] 프로그램의 흐름제어(1) (0) | 2019.01.25 |
Comments