function alertSuccess(msg) {
alert(msg);
}
alertSuccess("김개발님 로그인 성공!");
alertSuccess("박사장님 로그인 성공!");
함수문제를 정리하다가 한가지 궁금증이 생겼다.
함수를 호출할땐 consoloe.log를 붙이고 함수이름를 적어야 한다고 배웠는데(?)
위에 함수는 console.log가 없어도 알럿이 잘 호출되는 것을 볼 수 있다.
그러면 alert과 console.log의 차이점을 구글링해보자.
alert은 콘솔창에 뭔가를 띄우는 기능이 포함되어있어
console.log를 굳이 적어줄 필요가 없다는걸 알게 되었다.
alert() 는 말 그대로 사용자에게 무언가 메시지를 알려주어 주의를 환기하는 것이고,
console.log() 사용자에게 메시징 하는 것이 아니라, 개발자에게 메시징 하는 것.
이둘의 차이를 지금까지 모르고 있었던 것이다.
(사실 개발자 입장에서는 알럿이나 콘솔로그나 눈에 보이는것 똑같기에....)
내 생각에 함수란 쉽게 '뭔가를 찍어내는 공장'같은 개념같다.
만약에 우리가 수백만명에게 알럿창을 띄운다고 가정했을때
"님 로그인 성공!" 이라는 멘트를 하나하나 다 적어주기엔 힘이들고
name이라는 매개변수를 지정하고 name에 오는 이름만 '변경'하여
조금 더 편리한 로직을 만들어내는 것이다.
function alertSuccess(name) {
alert(name + "님 로그인 성공!");
}
alertSuccess("김워크");
아래의 코드는 잘못된 코드이다. 왜일까?
//Example
function alertSuccess(name) {
let name = "wecode";
alert(name + "님 로그인 성공!");
}
// 위와 같이 함수 내부에서 인자로 받은 변수(name)에 새로운 값("wecode")을 넣으면 안 됩니다!
// 인자(parameter)에 실제로 어떤 데이터가 전달될지는 호출할 때 결정하는 것입니다. 아래를 확인해주세요.
alertSuccess("wecode"); // 이렇게요!
우선 alertsuccess라는 함수에 매개변수로 name을 받았고,
랜덤으로 뭔가를 만들어주는 로직을 만들고 싶은데
let name = 'wecode'라고 뜬금없이 이름을 정의하고 있다.
이렇게되면 랜덤으로 이름을 넣어도 변수로 정의해놓은 위코드가
계속해서 뜨게되고 이건 아무런 의미가없는 빈 깡통같은
코드인 것이다.
'알고리즘' 카테고리의 다른 글
[알고리즘 문제] Array (배열) (0) | 2022.03.14 |
---|---|
[알고리즘 문제] Function(함수) - 데이터 반환하기(2) (0) | 2022.03.14 |
[알고리즘 문제] Function(함수) - parameter, argument (0) | 2022.03.13 |
[알고리즘 문제] object (3) (0) | 2022.03.07 |
[알고리즘 문제] Function(함수) - 여러 인자 (0) | 2022.03.04 |