본문 바로가기

html+CSS+JS

스터디 일지 | HTML, CSS, jQuery 어중간한 초급자 탈출하기 #7 (할당 연산자, 함수 실행 순서, return문 이해, 변수의 scope(영역), 상수(const))

반응형
#7회차
할당 연산자, 함수 실행 순서, return문 이해, 변수의 scope(영역), 상수(const)

1) 할당 연산자

- 등호를 사용하면 좌측에 우측의 값을 할당해주게 된다. 즉, 등호는 같은 것을 뜻하는 '일치'와는 다르게 사용된다.

let x = 5;  // x의 값은 5
x = x - 2 ;  // x의 값은 5 - 2 = 3
x = x + 1;  // x의 값은 3 + 1 = 4

console.log(x); // 따라서 콘솔에는 4가 출력이 된다.

 

- 복합 할당 연산자 : 자주 쓰이는 사칙연산(+, - , *, /, %, **)을 더 간략하게 쓸 수 있는 연산자.

동일한 값을 나타내는 연산자 ( let x = 8; ) x에 할당되는 값
x = x + 2 x += 2 9
x = x - 3 x -= 3 4
x = x * 4 x *= 4 28
x = x / 2 x /= 2 4
x = x % 3 x %= 3 2
x = x * x * x x **= 3 512

 

- 증가/감소 연산자: 간단하게 1씩 증가/감소하는 경우는 반복문 등에서 많이 쓰이기에 별도로 존재한다.

x = x + 1 x += 1 x++
x = x - 1 x -= 1 x--

후위 연산자(x++)로 사용한 경우 피연산자에 1을 더하기 전의 값을 반환합니다.

전위 연산자(++x)로 사용하면 피연산자에 1을 더한 값을 반환합니다.

let x = 3;
console.log(x++); // 3이 반환되고 x에 새로 3+1인 4가 할당됨
console.log(x); // X에 4가 할당돼서 4로 반환됨

let y = 3;
console.log(++y); // 3+1인 4가 할당되어 반환됨
console.log(y); // 위와 같이 4가 반환됨

console 결과값

3
4
4
4

 

 

2) 함수 실행 순서

- 코드는 기본적으로 위에서부터 아래로 실행이 되며, 함수는 만든다고 실행되는게 아니라 호출해야 실행이 된다.

function square(x) {
	return = x * x;
}  // 함수는 선언한다고 실행 되지 않으므로 콘솔에 영향을 주지 않는다.

console.log('함수 실행 전');  // 콘솔에 '함수 실행 전'이라고 뜸
console.log(square(4));  // 콘솔에 함수 square을 파라미터에 4라는 값을 대입하여 실행한 값이 뜸
console.log('함수 실행 후');  // 콘솔에 '함수 실행 후'라고 뜸

위와 같은 경우, 콘솔에서 아래와 같은 결과가 뜬다.

함수 실행 전
16
함수 실행 후

 

 

3) return문 제대로 이해하기

- 역할이 총 2가지이다.

1) 값을 반환한다.

2) return 문을 수행한 뒤, 그 아래에 있는 함수 내 코드들은 실행되지 않는다. (함수의 실행을 중단시킨다)

function square(x) {
	console.log('return 전');
    return x += 2;
    console.log('return 후');
}

console.log('함수 호출 전');
console.log(square(5));
console.log('함수 호출 후');

위와 같은 경우, 콘솔에서 아래와 같은 결과가 뜬다.

함수 호출 전
return 전
7
함수 호출 후

'return 후'라는 코드는 return 선언 이후의 코드이기 때문에 'dead code'로 분류되어 실행되지 않는다.

function square(x) {
	console.log('return 전');  // 콘솔에 'return 전'이라는 문자열 출력
    return x += 2;  // x에 2를 더한 값이 x에 할당되어 retrun
    console.log('return 후');  // return 선언을 한 이후의 함수이기 때문에 출력되지 않음
}   // 함수가 호출이 돼야 실행됨.

console.log('함수 호출 전');  // 콘솔에 '함수 호출 전'이라는 문자열 출력
console.log(square(5));  // 콘솔에 함수 square를 파라미터 값을 5로 하여 실행한 값을 출력
console.log('함수 호출 후');  // 콘솔에 '함수 호출 후'라는 문자열 출력

 

 

4) optional 파라미터

- 함수를 실행하면서 파라미터 값을 설정해주지 않을 때, 미리 파라미터에 값을 배정해주면 해당 값을 반환하게 되는데 이를 옵셔널 파라미터라고 한다.

function introduce(name, age = 18){
	console.log(`제 이름은 ${name}이고, 나이는 ${age}살입니다.`)
}

introduce('킹지');
introduce('탱이', 10);

 

위에서 '킹지'가 들어간 경우에 파라미터 age에 해당하는 값을 쓰지 않았지만 아래와 같이 출력된다.

제 이름은 킹지이고, 나이는 18살입니다.
제 이름은 탱이이고, 나이는 10살입니다.

 

참고로 옵셔널 파라미터는 값을 생략할 수 있기 때문에 무조건 마지막에 위치해두어야 한다.

 

 

5) 변수의 scope(영역)

- 코드를 작성하다보면 중괄호({})를 사용하는 선언문들이 있는데, 이를 '블록문'이라고 하여 별도로 인식한다.

- 이러한 블록문 안에 있는 변수는 '로컬(지역) 변수'라고 하여 해당 블록문 안에서만 인식이 된다.

function square(){
	let x = 10;
    return x * x;
}

console.log(x);  // x 변수가 블록문 안에서만 실행되므로 오류 발생
console.log(square());

 

반면, 블록문 밖에 있는 변수는 '글로벌(전역) 변수'라고 하여 모든 곳에서 인식이 된다.

let x = 10;

function square(){
    return x * x;
}

console.log(x);
console.log(square());

위와 같은 경우에는 블록문 안과 밖에서 모두 변수 x가 존재하므로 아래와 같이 값이 제대로 출력된다.

10
100

 

 

6) 상수 constant (const)

- 상수는 절대 값을 변경하지 않을 경우에 선언해주는 것. ex) 원주율(3.14)는 바꾸지 않는 수이기에 상수로 선언해주는 편이 편함

- 상수의 이름 규칙은 변수와 구분해주기 위해 대문자를 사용하는 경우가 많다. (ex. PI, MY_NUMBER)

 

 

 

하... 저번부터 조금 복잡해진다 싶더니 복습에 2배 이상의 시간이 걸리는 것 같닼ㅋㅋㅋ

그래도 확실히 내가 몰랐던 상세한 부분도 확실히 짚고 넘어갈 수 있게 되는 것 같아 은근 기분은 좋다ㅋㅋㅋ

반응형