안녕하세요

스터디7일차 - 매개변수, 인수, return 본문

스터디/유데미 Web Developer 스터디

스터디7일차 - 매개변수, 인수, return

sakuraop 2022. 8. 29. 00:30

202. 할 일 목록 프로젝트 따라하기
204. 함수 개요
205. 함수 설명
206. 인수 개요

매개변수(firstName)는 일종의 플레이스홀더입니다.
function greet(firstName) {
console.log(`Hey there, ${firstName}!`)
}
인수('Elvis')는 함수를 실행할 때 괄호 안에 전달하는 값입니다.
greet('Elvis')

 


PRACTICE
문자열을 3번 출력하는 함수
function rant(message) {
    for ( i=0 ; i<3 ;i++) {
    console.log(message.toUpperCase())
    }
}
rant("I hate beets")
//"I HATE BEETS"
"I HATE BEETS"
"I HATE BEETS" // toUpperCase() 함수를 이용해 대문자로 바뀌어서 출력됩니다.

 

 


208. 인수가 여러개인 함수
매개변수를 여러 개 쓸 경우 쉼표로 구분합니다.
function repeat(str, numTimes) {
let result = '';
for (let i = 0; i < numTimes; i++) {
result += str;
}
console.log(result)
}
repeat("Hi", 3)
//HiHiHi
repeat("Hi ", 3)
//Hi Hi Hi

첫번째 인수에 문자열을 입력하고 두번째 인수에 숫자를 입력하면 문자열 * 숫자 만큼 한 줄에 하나씩 출력하는 형태입니다.
for (let I = 0; i < numTimes; i++) {
console.log(str)
}

그리고 한 줄에 다 출력하기 위해서는 우선 함수 안에 변수를 선언합니다.

그리고 변수에 문자열을 더하도록 합니다.
result += str;
result = result + str;
결과적으로 문자열들이 담긴 result를 한 번 출력하면 됩니다.

 

 


매개변수가 있지만 인수를 입력하지 않아도 함수는 실행이 됩니다.
인수를 입력하지 않으면 매개변수가 위치한 자리는 undefined가 됩니다.

PRACTICE : snakeEyes 게임!
function isSnakeEyes (diceNum1, diceNum2) { 
if (diceNum1 === 1 && diceNum2  === 1) { // 주사위의 눈이 둘 다 1이라면 실행합니다.
    console.log("Snake Eyes!")
    }else{
    console.log("Not Snake Eyes!")
    }
}
let diceNum = Math.floor(( Math.random() * 6 )) + 1 // 1~6 사이의 수를 반환하도록 하고 diceNum변수에 저장합니다.
isSnakeEyes(diceNum)

 



208. 반환 키워드
function add(x, y) {
if (typeof x !== 'number' || typeof y !== 'number') { // 입력받은 인수의 타입이 number가 아니라면 실행됩니다.
return false;
}
return x + y;
}


1.  if (typeof x !== 'number' || typeof y !== 'number') {
typeof 는 타입을 반환하기 때문에 숫자를 넣으면 'number' 문자를 넣으면 'string'을 반환합니다.
이 값이 number가 아니면 true를 반환하고, 조건문 안의 return false; 를 실행합니다.
return을 만나면 함수는 즉시 종료됩니다.

2. return의 반환되는 값은 하나 뿐 입니다.
1, 2, 3을 반환받고 싶어도 return은 하나만 반활할  수 있기 때문에

배열, 객체와 같은 형태로 하나로 만들어 반환해야 합니다.
return [1, 2, 3] 

3. 함수의 인수로 함수를 사용할 수 있습니다.
add(add(1,5), 9)
// 15

PRACTICE
function sumArray(arr) {
    let result = 0;
    for (let i = 0 ; i < arr.length; i++) { // 배열의 길이만큼 반복합니다.
    result = result + arr[i] // result에 배열의 요소를 순서대로 더합니다.
    }
    return result
}

210. 범위 함수(scope), 조건문if, for 문, while (전역변수 / 지역변수)
함수 밖에서 선언된 변수 : 전역변수.
함수 안에서 선언된 변수 : 지역변수.


let bird = '앵무새'; // 전역변수입니다
function birdWatch() {
    let bird = '왜가리'; // 함수 안에서 선언된 지역변수입니다.
    console.log(bird);
}
birdWatch()

console.log(bird) // 지역변수는 함수 내에서만 존재하므로 "앵무새"가 출력됩니다.
 
var는 항상 전역변수로 사용됩니다. // 그래서 사용을 권장하지 않습니다.

213. 함수 표현식 
function add(x, y) {
return x + y;
}
/ 함수 선언식
const add = function (x, y) {
return x + y;
}
return 값이 add라는 변수에 저장됩니다.


218. try & catch 는 오류예외 처리입니다.