자바스크립트 함수2

한재창·2022년 10월 25일
0

함수2

- 범위

  1. 함수 밖에서 엑세스할 수 없음
function helpMe() {
  let msg = "I'm on fire!"
  msg; // 실행됨 ( "I'm on fire!" )
}
msg; // 실행 안됨 ( 에러 )
  1. 함수 안에 같은 이름을 정의된 변수가 있을 경우 그 변수를 먼저 참조
let bird = "Scarlet Macaw";
function birdWatch() {
  let bird = "Great Blue Heron";
  console.log(bird);
}
birdWatch()
Great Blue Heron

let bird = "Scarlet Macaw";
function birdWatch() {
  // let bird = "Great Blue Heron";
  console.log(bird);
}
birdWatch()
Scarlet Macaw

- 블록 범위

  • 블록 : 함수를 제외하고 기본적으로 중괄호가 있는 모든 곳을 가리킴
    조건문과 루프가 대표적인 예
    ! var을 쓰면 블록이 형성되지 않지만 let, const를 쓰면 블록이 형성됨
let radius = 9;

if (radius > 0) {
    const PI = 3.14;
    let circ = 2 * PI + radius;
}

console.log(radius); // 9
console.log(PI); // error
console.log(circ); // error

- 렉시컬 범위

  • 부모 함수의 안에 중첩된 내부 함수는 해당 외부 함수의 범위 또는 범위 내에서 정의된 변수에 엑세스 할 수 있음, 원하는 경우에는 추가로 더 중첩 가능
function outer() {
    let hero = "Black panther";

    function inner() {
        let cryForHelp = `${hero}, please save me!`
        console.log(cryForHelp);
    }
    inner();
}
outer();

- 함수 표현식

  • 변수 안에 함수를 저장하는 것
  • 함수가 Javascript에서는 값임, 숫자/배열/객체를 전달하는 것처럼 가능
const add = function (x, y) {
    return x + y
}

- 고차 함수

  • 다른 함수와 함께 작동하거나 다른 함수에서 작동하는 함수를 고급스럽게 표현한 함수
    함수를 변수에 저장할 수 있으므로 함수를 인수로 전달할 수 있음
    1) 다른 함수를 인수로 받아서 그 인수로 어떤 작업을 하는 함수
function callTwice(func) {
    func();
    func();
}

function rollDie() {
    const roll = Math.floor(Math.random() * 6) + 1
    console.log(roll)
}
callTwice(rollDie);

2) 함수 내에서 함수를 값으로 반환하는 법 (새로운 변수에 넣어 반복해서 사용 가능)

function makeBetwnneFunc(min, max) {
    return function (num) {
        return num >= min && num <= max;
    }
}

const child = makeBetwnneFunc(0, 18);
const adult = makeBetwnneFunc(19, 60);
const senior = makeBetwnneFunc(61, 100);

- 메서드 정의하기

const myMath = {
    PI : 3.14159,
    square(num) {
        return num * num
    },
    cube(num) {
        return num ** 3
    },
}
myMath.square(4) // 16
myMath.cube(3) // 9
profile
취준 개발자

0개의 댓글

관련 채용 정보