WEB/자바스크립트
자바스크립트 함수
Goblebin
2022. 3. 29. 23:33
반응형
함수 호이스팅(hoisting)
전역변수로 설정된 변수를 함수내부에서 다시 변수를 선언할 경우 함수가 실행될 때 그 변수는 초기화된다.?
예를 들어
var a = 10;
function abc() { document.write("a의 값은 " + a + "입니다."); //a -> undefined값이 된다. var a = 20; //함수가 실행될 때 var a; 가 실행되는것과 다름없다. document.write("a의 값은 " + a + "입니다."); //a -> 20이 된다. } |
아래의 경우는 정상적으로 작동한다.
var a = 10; function abc() { document.write("a의 값은 " + a + "입니다."); //a -> 10이 된다. a = 20; //a를 다시 선언하지 않고 값만 바뀌었다. document.write("a의 값은 " + a + "입니다."); //a -> 20이 된다. } |
함수에서 매개변수를 받을 때 지정된 매개변수보다 적은 인수를 받으면 남은 매개변수는 undefined로 설정됨.
function abc(a, b, c) { console.log(""+a+b+c); } abc(1, 2, 3); //123 abc(1, 2); //12undefined abc(1); //1undefinedundefined abc(); //undefinedundefinedundefined |
아래 처럼 설정할 수 있음.
function abc(a, b, c) { if(a==undefined) { a=0; } if(b==undefined) { b=0; } if(c==undefined) { c=0; } console.log(a+b+c); } abc(1, 2, 3); //6 abc(1, 2); //3 abc(1); //1 abc(); //0 |
함수 arguments
모든 함수는 입력받는 인자를 arguments라는 객체에 배열형식으로 저장함.
예를들어
function abc() { var a=0, sum=0; for(a=0; a sum += arguments[a]; } console.log(sum); } abc(1, 2, 3); //6 abc(1, 2); //3 abc(1); //1 abc(); //0 |
디폴트 매개변수
함수에 지정된 매개변수보다 적은 인수를 받으면 지정받지 못한 매개변수에 값을 넣을 수 있다.
function abc(a, b, c=1) { //지정받지 못한 c에는 1이 들어간다. var a=0, sum=0; for(a=0; a sum += arguments[a]; } console.log(sum); } abc(1, 2); //3 |
나머지 매개변수
// 첫 번째 인수를 변수 firstNum에 저장하고 나머지 인수들은 배열 restArgs에 저장함. function sub(firstNum, ...restArgs) { // ...접두사를 사용한다. for(var i = 0; i < restArgs.length; i++) { firstNum -= restArgs[i]; } return firstNum; } sub(10, 2, 3); // 10 - 2 - 3 = 5 sub(10, 1, 5, 8); // 10 - 1 - 5 - 8 = -4 |
미리 정의된 전역함수들
https://www.tcpschool.com/javascript/js_function_predefinedFunction
코딩교육 티씨피스쿨
4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등
tcpschool.com
한 번 살펴보기만 하는게 좋을 것 같다.
별로 중요하지 않은 내용에 시간을 많이 투자한 느낌이 들어서 아쉽다.
그래도 시간을 많이 들인만큼 공부한 내용을 잊지 않았으면 좋겠다.
반응형