
: 특정 동작을 수행하는 일부 코드의 집합
① 함수 선언문 (function declartion)
<script>
function sayHello() {
console.log("Hello");
}
</script>② 함수 표현식 (function expression)
<script>
const sayHello = function() {
console.log("Hello");
}
</script>②-1. 화살표 함수 (arrow function)
함수 표현식에 대한 간결한 대안이다.
<script>
// 함수 표현식
let add = function(num1, num2){
return num1 + num2;
}
// 화살표 함수
let add = (num1, num2) => {
return num1 + num2;
}
</script>
onclick: HTML 요소가 클릭되었을 때 발생하는 이벤트이다.
이벤트 핸들러(event handler)란?
이벤트가 발생되면 실행되는 코드 블럭이다.
cf. 이벤트 리스너(event listener)
-> 리스너는 발생되는 이벤트에 대해 듣고, 핸들러는 발생되는 이벤트에 응답해서 실행되는 코드이다.
1. if
<script>
// if / else
if (조건1) {
// 조건1이 참이라면 실행
} else {
// 조건1이 거짓이라면 실행
}
// if / else if / else
if (조건1) {
// 조건1이 참이라면 실행
} else if (조건2) {
// 조건2가 참이라면 실행
} else {
// 조건 1, 2가 모두 참이 아닐 때 실행
}
// 조건의 수에 따라 else if를 더 추가하여 사용할 수 있다.
</script>
if 문을 중첩하여 사용할 수 있다.2. switch
<script>
switch (변수) {
case 값1:
// 변수와 값1이 일치하면 실행
break;
case 값2:
// 변수와 값1이 일치하면 실행
break;
default:
// 일치하는 값이 없을 때 실행
break;
}
</script>
3. 삼항 연산자
조건식 ? 조건이 참인 경우 : 조건이 거짓인 경우;<script>
let name = "gildong";
// if 문
if (name === "gildong") {
console.log("true");
} else {
console.log("false");
}
// 3항 연산자
name === "gildong" ? console.log("ture") : console.log("false");
</script>
1. for문
for 문을 중첩하여 사용할 수 있다.
이미지 참고: 포스코x코딩온 강의 자료(10_03_js_02_func&if&for.pdf)
2. while문
for 문과 달리 조건을 변경하는 구문이 기본적으로 포함되어 있지 않기 때문에 무한 루프에 빠질 수 있다.<script>
while (조건문) {
실행할 코드(명령문)
}
</script>
<script>
// 1 ~ 10번째 출력하기
// for
for (let i = 1; i < 11; i++) {
console.log (i, "번째");
}
// while
let j = 1;
while (j < 11) {
console.log (j, "번째");
j++:
}
</script>
3. 반복문 제어
1) break
<script>
for (let i = 0; i < 100; i++) {
if (i == 10) {
console.log("멈춰!");
break;
}
}
// 0 1 2 3 4 5 6 7 8 9 멈춰!
// 종료
</script>
2) continue
<script>
let sum = 0;
for (let i = 0; i < 100; i++) {
if (i % 2 == 0) {
continue;
}
sum += i;
}
console.log(sum); // 2500
</script>
참고: 포스코x코딩온 강의 자료(10_03_js_02_func&if&for.pdf)
함수 호이스팅
- 위에서 보았듯이, 함수 선언문으로 정의한 함수는 함수 선언문 이전에 호출할 수 있지만 함수 표현식으로 정의한 함수는 함수 표현식 이전에 호출할 수 없다.
- 한수 선언문으로 함수를 정의하면, 모든 선언문이 그렇듯이 코드가 한 줄씩 순차적으로 실행되는 시점인 런타임 이전에 자바스크립트 엔진에 의해 먼저 실행된다. 이로 인해, 함수 선언문 이전에 함수를 참조할 수 있으며 호출할 수도 있게 되는 것이다.
1. for in
for...in문은 상속된 열거 가능한 속성들을 포함하여 객체에서 문자열로 키가 지정되 모든 열거 가능한 속성에 대해 반복한다.symbol은 생성자가 symbol 원시 값을 반환하는 내장 객체이다. 원시 값이란 객체가 아니면서도 메소드 또는 속성도 가지지 않는 데이터이다. (예: string, number, bigint, boolean, undefined, symbol, null)<script>
var obj = {a: 1, b: 2, c: 3};
for (const prop in obj) {
console.log(`obj.${prop} = ${obj[prop]}`);
}
// obj.a = 1
// obj.b = 2
// obj.c = 3
</script>
2. do while
<script>
var count = 0;
// count가 3보다 작을 때까지 코드 블록을 계속 반복 실행한다.
do {
console.log(count); // 0, 1, 2
count++;
} while (count < 3);
</script>
참고 : ⌜모던 자바스크립트 Deep Dive⌟, 이웅모, 위키북스.