일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
31 |
- Git
- Cookie
- 꿀단집
- 유노코딩
- 코딩테스트준비
- 파이썬프로그래밍기초
- 자격증
- 코드잇
- TiL
- aws
- 항해99
- 코딩테스트
- 데이터베이스시스템
- CSS
- nestjs
- MySQL
- 파이썬
- 방송대컴퓨터과학과
- 프로그래머스
- 방송대
- HTML
- 99클럽
- Python
- SQL
- node.js
- 개발자취업
- 중간이들
- redis
- 엘리스sw트랙
- JavaScript
- Today
- Total
배꼽파지 않도록 잘 개발해요
입문자를 위한 자바스크립트 기초 강의 (유노코딩) - 자바스크립트 기초 (DOM ~ 함수) 본문
Document Object Model, DOM
렌더링 : 해석한 HTML 코드를 화면을 통해 보여주는 과정
렌더링의 세부 과정
브라우저는 HTML 코드를 해석해서 요소들을 트리 형태로 구조화해 표현하는 문서(객체)인 DOM을 생성함.
브라우저는 DOM을 통해 화면에 웹 콘텐츠들을 렌더링함.
DOM의 존재 목적
DOM은 자바스크립트를 사용해서 웹 콘텐츠를 추가, 수정, 삭제하거나 마우스 클릭, 키보드 타이핑 등 이벤트에 대한 처리를 정의할 수 있도록 제공되는 프로그래밍 인터페이스(interface)임.
사진 넣기 (3분쯤 나오는 화면)
Document & methods
window.document
브라우저 객체 window의 document 속성은 창이 포함한 문서를 참조함.
window.document는 현재 브라우저에 렌더링되고 있는 문서를 의미함.
이 속성을 이용하면 해당 문서에 접근할 수 있음.
DOM에 대한 진입점 역할을 하는 프로그래밍 인터페이스임.
이를 이용하면 페이지의 정보를 얻거나 웹 요소를 생성 및 조작할 수 있음.
document는 문서(HTML, XML, SVG 등)에 대한 공통의 속성과 메소드를 제공함.
다양한 API(Application Programming Interface)를 제공함.
대표적인 메소드
- document.querySelector
- document.getElementById
두 메소드는 모두 요소(Element) 객체를 반환함.
document.querySelector
document의 querySelector 메소드는 선택자를 인자로 전달받아, 전달받은 선택자와 일치하는 문서 내 첫 번째 요소(Element)를 반환함.
일치하는 요소가 없으면 '없다'라는 의미의 null 데이터를 반환함.
인자로 전달되는 선택자는 문자열 타입의 '유효한 CSS 선택자'를 의미함.
document.getElementById
id를 인자로 전달받아, 전달받은 선택자와 일치하는 문서 내 요소(Element)를 반환함.
일치하는 요소가 없으면 '없다'라는 의미의 null 데이터를 반환함.
인자로 전달되는 선택자는 문자열 타입의 'id'를 의미함.
textContent
해당 노드가 포함되고 있는 텍스트 콘텐츠를 표현하는 속성
textContent를 통해 요소가 포함한 텍스트를 읽을 수도, 변경할 수도 있음.
사진 오른쪽 보면 브라우저에서 '렌더링'되는 걸 알 수 있음.
이렇게 렌더링되고 있는 것은 DOM이 있기에 가능한 것임.
비교 연산과 또 다시 boolean
자바스크립트에서 비교
자바스크립트는 주어진 두 항을 비교할 수 있는 '비교 연산자'를 제공함.
자바스크립트에서 할 수 있는 비교 : 대소 비교(크냐 작냐), 등가 비교(같냐 다르냐)
비교 연산의 특징
비교 연산식은 언제나 boolean 데이터를 반환함.
등가비교나 대소비교나 모두 하나의 질문이며, 답이 true 혹은 false이다.
예를 들어)
3이 5보다 작냐? true
6과 6이 다르냐? false
대소 비교
연산자의 의미는 앞에 있는 피연산자 기준
의미 | 연산자 | 사용 형태 |
크다 | > | A > B |
작다 | < | A < B |
크거나 같다 | >= | A >= B |
작거나 같다 | <= | A <= B |
등가 비교
등호(이퀄 사인, =) 하나는 대입연산자이므로, 기호 개수를 잘 봐가며 사용하자.
의미 | 연산자 | 사용 형태 |
같다 | == | A == B |
같지 않다 | != | A != B |
완전히 같다 | === | A === B |
완전히 같지 않다 | !== | A !== B |
== : 추상적(abstract) 같음 비교, 자료형이 서로 다르더라도 같다고 판단할 수 있는 비교
=== : 엄격한(strict) 같음 비교, 자료형과 데이터가 모두 일치해야만 같다고 판단
조건문
조건문 : 주어진 조건의 참/거짓 여부에 따라 프로그램의 흐름을 결정할 수 있는 구문
조건 : boolean 데이터를 반환하거나 boolean 데이터로 해석할 수 있는 표현식
조건문이 실행을 마치고 나면 코드 진행 흐름은 이어지는 다음 구문으로 자연스럽게 이동함.
예)
게임 캐릭터의 HP가 0입니까? → true일 경우 캐릭터는 사망
지하철 요금을 낼 만큼의 돈이 있습니까? → true일 경우 지하철을 탈 수 있음
if문
조건이 참일 때 할일을 정의하는 구문을 생성함.
if(조건) {
// 조건이 true일 때 실행 코드
}
if~else문 (else를 추가한 if문)
if(조건){
// 조건이 true일 때 실행할 코드
}else{
//조건이 false일 때 실행할 코드, else는 독립 사용 불가
}
if~else구문은 아무리 길어도 하나의 구문으로 실행됨.
반복문
비슷하거나 동일한 구문을 반복해서 수행할 수 있는 구문
대표적인 반복문 : while문, for문
while문
주어진 조건이 참일 동안에 구문을 반복하는 반복문
한번만 작성해도 여러번 동작할 수 있음
while(조건){
// 조건이 true인 동안에 반복 수행할 코드
}
조건 : 불리언을 반환하거나 불리언으로 해석될 수 있는 표현식
반복 구문 : 루프(loop)
confirm : 확인 (true 반환) / 취소(false 반환)
alert : 확인
for문
구문 작성시 반복을 위해 필요한 세 가지 요소를 한 곳에 모아 작성함.
보다 명시적으로 반복 횟수를 표현할 수 있는 직관적인 구문
for(초기식; 조건식; 반복식){
// 조건이 true인 경우 반복 수행할 코드
}
초기식 : 반복 조건의 초기화 작업
반복식 : 반복이 한 번 끝날 때마다 실행될 작업
초기식 → 조건식 → true면 중괄호 안 내용 출력 → 반복식 ....
이 과정은 조건식이 false를 반환할 때까지 반복됨.
for문의 초기식에서 선언한 변수는 for문의 실행이 끝나면 사라져서 사용할 수 없음.
함수
함수 : 호출될 수 있는 코드 조각
변수를 선언하고 데이터를 대입하면 변수의 이름을 데이터 대신 사용할 수 있는 것처럼, 함수를 선언하면 함수 이름을 코드 조각 대신 사용할 수 있음.
함수를 만드는 두 가지 방법
함수 선언식, 함수 표현식
함수 선언식
function 함수명(){
// 함수의 기능을 표현한 구문
}
→ 위와 같은 선언 이후, 함수명은 중괄호 안의 기능 대신 사용될 수 있음.
함수 표현식
const 함수명 = function(){
// 함수의 기능을 표현한 구문
}
→ 마찬가지로 선언 이후, 함수명은 중괄호 안의 기능 대신 사용될 수 있음.
함수가 만들어지고 나면, 함수명은 스스로 보관하고 있는 구문 대신 사용될 수 있음.
함수가 사용되기 위해서는 함수를 호출해야만 함.
함수를 호출할 때는 함수 이름 뒤에 반드시 소괄호를 붙여줘야 함.
함수 이름 짓는 규칙
함수의 기능을 적절하게 표현할 수 있는 이름을 사용하자
함수는 기능이니까 명사보다는 동사로 된 이름을 사용하자
소문자로 시작하되, 여러 단어가 섞인 경우 카멜표기법을 사용하자
함수 선언식 vs 표현식 :
선언식은 함수 정의보다 호출문을 앞서 작성할 수 있지만, 표현식은 그럴 수 없다.
선언식은 호이스팅이 가능함.
Hoisting(호이스팅) :
인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것
함수 안에서 선언한 변수는 함수 안에서만 쓸 수 있다. (지역변수)
함수의 데이터 반환
함수를 만들 때, 함수가 데이터를 반환하도록 할 수 있음.
함수가 데이터를 반환한다는 것 = 함수 호출문이 데이터로 대체됨을 뜻함.
함수가 데이터를 반환하려면, '이 데이터를 반환한다'라는 구문을 함수 내부에 추가해 주어야 함.
이때 키워드 return이 사용됨.
return
- 함수 내부에서 함수의 부가 기능을 위해 사용하는 키워드
return의 두 가지 기능
함수로부터 데이터를 반환한다.
함수를 끝낸다.
데이터를 반환한다.
return은 뒤에 붙은 데이터를 반환함.
이때 데이터는 딱 하나씩만 반환할 수 있음
함수를 끝낸다
return은 데이터 반환 뿐만 아니라 함수를 강제 종료하는 역할도 수행할 수 있음.
종료 목적만 있는 경우에는 return 뒤에 데이터를 기입하지 않아도 됨.
result는 noReturn함수를 실행하는 변수임.
변수는 있지만 데이터는 대입되지 않은 상태라서 'undefined'가 뜸.
return 10, 20, 30, 40, 50 → 50만 나옴
return 여러번 쓰는거 → 불가능
return 10
return 20
함수에 재료를 전달하세요
함수 호출문 : 함수명 + 소괄호
소괄호의 역할 : 함수가 실행될 때 사용할 재료(데이터)를 전달받는 것
yourFunc( 여기 )
매개변수 :
- 함수 호출 시 전달될 데이터에 이름을 붙여주는 것
- 변수가 호출될 때마다 이름이 바뀔 수 있음.
매개변수는 개수제한이 없이 원하는 만큼 호출할 수 있음.
구분자 쉼표(,) 이용해 추가함.
매개변수(parameter) : 인자(재료)를 전달받기 위해 만들어 둔 변수
인자(argument) : 실제 함수 호출 시에 전달하는 데이터
만들 수 있는 함수 유형 네 가지
매개변수 X, 반환 X
매개변수 O, 반환 X
매개변수 X, 반환 O
매개변수 O, 반환 O
배운 내용 스스로 응용해보기
원하는 대로 나옴.
다음에는
1) 1~10사이 숫자만 나오게 하는 거
2) 1~10사이 숫자 범위 벗어나면 에러메시지 뜨게 하는 거
-> 추가하고 싶음.
'강의노트' 카테고리의 다른 글
입문자를 위한 자바스크립트 기초 강의 (유노코딩) - 자바스크립트 기초 (이벤트~삼항연산) (0) | 2023.04.02 |
---|---|
입문자를 위한 자바스크립트 기초 강의 (유노코딩) - 자바스크립트 기초 (0) | 2023.03.31 |
입문자를 위한 CSS 기초 강의 (유노코딩) (0) | 2023.03.29 |
입문자를 위한 HTML 기초 강의 (유노코딩) (1) | 2023.03.26 |