# while구문
특정 조건을 만족하는 한 코드를 반복해서 실행
# do..while구문
while구문과 사용법은 크게 다르지 않으나, 내부 코드를 무조건 한 번은 실행시킨다는 차이점이 있다.
# for구문
초기값을 정할 수 있고 갱신을 위한 코드가 짧을 경우에 사용
# 참조(reference)
객체가 컴퓨터 메모리 상에서 어디에 저장되었는지를 가리키는 값
# 클로저(Closure)
보통의 경우, 안쪽 스코프에서 정의된 변수는 바깥 스코프에서 접근할 수 없다.
# 큐(Queue)
- 데이터를 집어넣을 수 있는 선형(linear) 자료형
- 먼저 집어넣은 데이터가 먼저 나온다. 이 특징을 줄여서 FIFO(First In First Out)라고 부른다.
- 데이터를 집어넣는 enqueue, 데이터를 추출하는 dequeue등의 작업을 할 수 있다.
# 스택(stack)
- 데이터를 집어넣을 수 있는 선형(linear) 자료형
- 나중에 집어넣은 데이터가 먼저 나온다. 이 특징을 줄여서 LIFO(Last In First Out)라고 부른다.
- 데이터를 집어넣는 push, 데이터를 추출하는 pop, 맨 나중에 집어넣은 데이터를 확인하는 peek 등의 작업을 할 수 있다.
# 비동기 프로그래밍(Asyncronous Programming)
어떤 일이 완료되길 기다리지 않고 다음 코드를 실행해 나가는 프로그래밍 방식
# 동기식 프로그래밍(synchronous programming)
어떤 일이 완료될 때까지 코드의 실행을 멈추고 기다리는 프로그래밍 방식
# 예외 처리(exception handling)
javascript에는 코드 실행 중 예기치 못한 에러가 발생했을 때, 이로부터 코드의 실행 흐름을 복구할 수 있는 기능이 내장되어 있다. 이런 기능을 예외 처리라고 한다.
# 함수 호이스팅
함수에서는 단지 함수 선언만 상단으로 끌어올려진다.(함수 표현식은 아님)
/* 함수 선언 */ foo(); //“bar”
function foo(){ console.log(‘bar’); }
/* 함수 표현식 */ baz(); //TypeError: baz is not a function
var baz = function(){ |
# 즉시실행함수(IIFE)
- 함수의 정의와 동시에 실행되는 함수
- 최초 한 번만 호출되며, 다시 호출할 수는 없다.
- 이러한 특징을 이용하여 최초 한 번만 실행이 필요한 초기화 처리 등에 사용할 수 있다.
# 내부함수(Inner function)
- 함수 내부에 정의된 함수
- 내부함수는 부모함수의 변수에 접근가능하지만 부모함수는 자식함수(내부함수)의 변수에 접근할 수 없다.
# 콜백함수(Callback function)
- 함수를 명시적으로 호출하는 방식이 아니라 특정 이벤트가 발생했을 때 시스템에 의해 호출되는 함수
- 콜백 함수가 가장 자주 사용되는 대표적인 예는 이벤트 핸들러 처리이다.
# 스코프(scope, 유효범위)
- 참조 대상 식별자(identifier, 변수, 함수의 이름과 같이 어떤 대상을 다른 대상과 구분하여 식별할 수 있는 유일한 이름)를 찾아내기 위한 규칙이다. 자바스크립트는 이 규칙대로 식별자를 찾는다.
# 전역스코프(Global scope)
- 코드 어디에서든지 참조할 수 있다.
# 지역스코프(Local scope or Function-level scope)
- 함수 코드 블록이 만든 스코프로 함수 자신과 하위 함수에서만 참조할 수 있다.
# 전역 변수(Global variable)
- 전역에서 선언된 변수이며 어디에든 참조할 수 있다.
# 지역 변수(Local variable)
- 지역(함수)내에서 선언된 변수이며 그 지역과 그 지역의 하부에서만 참조할 수 있다.
변수는 선언 위치(전역 또는 지역)에 의해 스코프를 가지게 된다.
# 버블링(Event Bubbling)
- 자식 요소에서 발생한 이벤트가 부모 요소로 전파되는 것
# 캡처링(Event Capturing)
- 자식 요소에서 발생한 이벤트가 부모 요소부터 시작하여 이벤트를 발생시킨 자식 요소까지 도달하는 것
-> 버블링과 캡처링은 둘 중에 하나만 발생하는 것이 아니라 캡처링부터 시작하여 버블링으로 종료한다는 것
즉, 이벤트가 발생했을 때 캡처링과 버블링은 순차적으로 발생
'코딩 > javascript' 카테고리의 다른 글
깊은복사/얕은복사 (0) | 2020.03.05 |
---|---|
예외 처리 (0) | 2020.01.14 |
매개변수와 인수 (0) | 2020.01.14 |
웹 스토리지(WEB STORAGE) (0) | 2019.03.18 |
var, let, const 차이점 (0) | 2019.03.11 |