-
[ JavaScript ] 함수PROGRAMMING/JavaScript 2022. 5. 19. 22:54
하루입니다.
자바와의 차이점
- 접근제한자가 없다.
- 반환타입을 지정할 필요가 없다.
- 매개변수의 타입을 지정할 필요가 없다.
- 함수 중복정의가 소용이 없다.
이름있는함수, 이름없는함수
이름있는 함수 정의하기
function fn1() { console.log("이름있는 함수가 실행됨"); }실행
- 함수명();
이름없는 함수 정의하기 : 변수에 담아야 한다.
let fn2 = function () { console.log("이름없는 함수가 실행됨"); }실행
- 변수명();


위 식에서 fn2가 실행되지 못한 이유. function은 스크립트 구문 분석할 때 window에 담긴다. 선언 위치 상관 없이 실행 가능하다는 뜻. fn2는 변수이고, 일단 function()이 실행돼야 fn2에 값이 담기게 된다.
실행을 정의 밑에서 하면 잘 실행된다.
변수 스코프
- var로 선언하냐 let으로 선언하냐에 따라 변수의 스코프가 완전히 달라진다. 자바와 자.스는 비슷한 듯 정말 엄청나게 다르다 ...
- 매개변수를 받지 못하면 에러가 아닌 undefined값이 뜬다 (...)
- 지역변수는 함수 내부에서 선언한 변수이며, 해당 함수 내에서만 사용 가능하다 (이건 또 자바랑 같네)
자바스크립트의 함수의 매개변수
- 자바의 매개변수는 함수 중복정의 지원하지 않는다.
- 같은 이름 함수 여러개 정의하면 맨 마지막 함수만 사용한다.


fn이라는 이름의 변수 세 개 만들었다. 처음은 매개변수 없음, 두번째는 한 개, 세 번째는 두 개. 그 밑에는 fn에 1~5개의 값을 줘봤다. fn(x, y)만 시행된다. 만약 fn(x)가 마지막으로 온다면 fn(n)이 마지막으로 실행될 것.
함수의 반환값
// return문이 없는 함수는 항상 unsefined를 반환한다. function fn1() { } // 정수값을 반환하는 함수다. function fn2() { return 10; } // 배열을 반환하는 함수다. function fn3() { return [10, 20, 30]; } // 객체를 반환하는 함수다. function fn4() { return { no: 1001, name: "홍길동", email: "hong@gmail.com", phone: "010-0000-0000", info: function() { console.log("번호: ", this.no); console.log("이름: ", this.name); console.log("메일: ", this.email); console.log("연락처: ", this.phone); } } } // 객체를 반환하는 함수다. function fn5() { return function(x, y) { return x + y; } }실행 결과

함수를 함수 안에 ... 알 수 없는 자.스의 세계 ...

참고자료
잘못된 정보에 대한 지적은 언제나 환영입니다.
복습 끝!
'PROGRAMMING > JavaScript' 카테고리의 다른 글
[ JavaScript ] 브라우저의 이벤트 기본동작 막기 (0) 2022.05.21 [ JavaScript ] JavaScript Event. 이벤트 버블링. 이벤트 위임. 이벤트 막기. (0) 2022.05.20 [ JavaScript ] 주요 API : 체크상태 변경 / 엘리먼트 조작 / 바로실행함수 (0) 2022.05.19 [ JavaScript ] if문, 주요 API (0) 2022.05.18 [ JavaScript ] innerHTML, textContent (0) 2022.05.18