study blog
[JavaScript] 자바스크립트 입문 (3)_ 연산자/함수 본문
/*프로그래머스의 무료 자바스크립트 입문강의를 듣고 기록하는 포스팅입니다.*/
산술연산자
피연산자는 연산자가 연산을 수행하는 대상이다. (6+2에서 6과 2가 피연산자이다.)
그리고 6+2는 피연산자가 2개이므로 이항연산자라고 한다.
또한 피연산자가 하나인 경우를 단항연산자라고 한다.
var a=1;
console.log(a); //1
console.log(a+1); //2
console.log(a); //1
console.log(a); //1
console.log(++a); //2
console.log(a); //2
console.log(a); //1
console.log(a++); //1
console.log(a); //2
++a: a값에 1을 더한 다음에 값을 출력한다. (a=a+1)
a++: 일단 a값을 출력하고 그 다음에 a에 1을 더한다.
cf) Math.random(): 0~1 사이의 임의의 수를 발생시켜 준다.
함수 function 사용하기
우리가 자주 쓰는 console.log() 또한 함수이며, 우리는 함수를 호출한다고 말함.
함수 정의 구문
function 함수이름 (파라미터, 파라미터) {
//실행할 코드 쓰기
//파라미터들은 변수처럼 사용가능
//함수가 결과값을 반환해야할 경우 return
return 반환값;
}
예시로 print라는 함수를 호출해보자.
function print (message) {
console.log("print function in");
console.log(message);
console.log("print function out");
}
print("HI FUNCTION");
출력값: print function in/ HI FUNCTION/ print function out
여기서 엄청난 코린이인 나는
왜 print(); 는 console.log()를 하지 않았음데도 불구하고 콘솔창에 찍히는 걸까?🤔
라는 궁금증이 생겼고 이에 대한 답은 굉장이 쉬웠는데
바로 함수 실행 코드에 console.log가 있기 때문이었다.
또한 예시와는 다르게 콘솔창에서 직접 print 함수를 호출할 수도 있는데
콘솔창에 직접 mimi 라는 값을 넣어 잘 출력되는 것을 볼 수 있다.
여기서 중요한 건 undefined 인데 이는 return구문이 따로 없었기 때문에 함수의 실행 결과가 undefined로 나오는 것이라고 한다.
이번엔 매개변수가 2개인 함수를 살펴보자.
function sum (arg1, arg2) {
var result = arg1 + arg2;
return result;
}
마찬가지로 콘솔창에 직접 함수에 값을 입력하고 알맞은 출력값이 나왔다.
sum이라는 함수는
result라는 변수에 1,2를 더한 값을 저장해두고, 그 값을 return 구문을 통해 반환하게 된다.
그래서 이번 출력값은 전의 예시처럼 마지막에 undefined까지 나오지는 않게 된다.
return에 대해
return은 밑의 예제를 보면 쉽게 와닿을 수 있다.
function return_test(){
console.log("실행되지 않는 코드");
}
//출력값: 실행되지 않는 코드
return 없이 쓰였을 경우, return_test 함수를 호출하면 출력값은 console.log 함수 그대로 뜨게 된다.
반대로 return을 썼을 경우에는
function return_test(){
return;
console.log("실행되지 않는 코드");
}
//출력값: undefined
return_test 함수를 호출했을 때 출력값이 undefined 으로 나오는데 그 이유는
return을 쓰게 되면 return의 하위 코드들은 다 실행하지 않고 종료되고, return에 대한 반환값도 없기 때문에 출력값은 undefined으로 나오는 것이다.
마지막으로 연습문제를 풀었는데
난 굉장히 복잡하게 생각했다. (무조건 변수가 있어야 한다고 생각했다.)
function solution(a,b){
return a+b;
}
더 간단한 답
'제1장' 카테고리의 다른 글
[JavaScript] 자바스크립트 입문 (5)_ 조건문/switch문 (0) | 2022.02.05 |
---|---|
[JavaScript] 자바스크립트 입문 (4)_ 연산자/배열 (0) | 2022.02.04 |
[JavaScript] 자바스크립트 입문 (2)_ 기본자료형/객체 (0) | 2022.02.02 |
[JavaScript] 자바스크립트 입문 (1)_ 변수/기본자료형 (0) | 2022.01.29 |
[CSS] padding-top과 background-position (0) | 2022.01.26 |