개발/Java

자바스크립트 - 함수

dev-bleck 2022. 11. 15. 17:43

선언적 함수 : 함수의 기본적인 선언 방법

<script>
	function aaa() {
	console.log('aaa 함수 실행');
   	}
    
    aaa(); // 함수 실행
</script>

 

 

변수에 익명 함수를 참조시킨다 (=변수에 함수를 담는다)

<script>
	var bbb = function() { // 익명 함수
	console.log('bbb 함수 실행');
	}
    
    bbb(); // 함수 실행
</script>

 

다른 선언된 함수를 참조한다 (=변수에 함수를 담는다)

<script>
	var ccc = aaa;
    
    ccc(); // aaa 함수 실행
    
    // 함수를 배열에 담고, for of 사용해서 실행
    var factoryArr = [aaa, bbb];
    for(f of factoryArr) {
    	fn();
    };
</script>

 

Call - back 함수

<script>
	function aaa(callback) {
    // call-back 함수
    console.log('aaa 함수 실행');
    callback(500); // aaa(callback(500)) == aaa(function(data))
    }
    
    functionn bbb() { 
    	console.log(arguments); // callback의 파라미터(500)를 console에 출력
        console.log('bbb 함수 실행');
    }
    
    bbb();
    
    // bbb가 callback 함수로 들어가서 callback 함수가 실행되면 bbb가 실행된다.
    // callback(500);에 파라미터가 들어가 있지만, 형식적 파라미터기에 없어도 실행 가능.
    // 따라서 이상없이 bbb가 실행됨.
    aaa(bbb);
    
    // aaa를 실행하면서 익명함수를 만들어서 넣어줌
    aaa(function(data) {
    	console.log('익명 함수 실행' + data);
    });
</script>

 

클로져(Closure)

<script>
	function aaa(aNum) {
    	let data = 'Hello';
        return (function(num) {
    		console.log(data + ' aaa의 내부 함수 ... ' + (aNum + num));
        });
    };
    
    // 새로운 함수가 aaa를 기억하고 받아서 사용 가능
    var fn = aaa(30);
    fn(100);
</script>

 

템플릿 문자열 : `${ }`

<script>    
    function mkFn(name) { 
        var tmpStr = `${name}의 점수는 `;
        return (function(score, callback) {
            console.log(tmpStr + score + "점 입니다.");
            callback(name);
        });
    }
    
    var printScore  = mkFn('홍길동');
    printScore(95, function(result) {
    	console.log(result + '의 성적 확인 완료');
    });
</script>

 

728x90