디지털 컨버전스/Java Script

[Javascript] function

gimyeondong 2020. 4. 13. 12:05

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <script>
    
        function plus(num1, num2){
            var result = num1, num2;
            return result;
        }
        
        var result = plus(10,20);
        console.log(result);
    
    </script>
</body>
</html>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <script>
        
        function sayHello(){
            console.log("Hello");
        }
    
        function plus(num1, num2){
            var result = num1, num2;
            return result;
        }
        
        var result = plus(10,20);
        console.log(result);
        
        sayHello();
    
    </script>
</body>
</html>

자바스크립는 C언어의 포인터 개념을 끌고 왔기 때문에

 

Stack : 지역변수 , 매개변수 선언

Data : static

Heap : new 동적할당

Text : 코드영역 (자바에서는 숨기려고 한다)

 

 

주소값을 이용해서 변수를 저장

코드의 주소값 -> 함수의 이름

 

주소값()  : 주소값으로 찾아가서 실행해라.

주소값 : 주소값 자체

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <script>
    
        function plus(num1, num2){
            var result = num1, num2;
            return result;
        }
        
//        var result = plus(10,20);
//        console.log(result);
        
        var result = plus;
        console.log(result(50,30));
//        result와 plus는 같은 함수

    </script>
</body>
</html>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    
    <script>
        
        function plus(num1,num2){
            return num1+num2;
        }
        function minus(num1,num2){
            return num1-num2;
        }
        
        function calc(act, num1, num2){
            return act(num1,num2);
        }
    
        console.log(calc(minus,10,20));
        
    </script>
    
    
</body>
</html>

익명함수

함수를 주소화 시킨다.

함수를 선언하되 이름없는 함수로 만들어 리턴된 주소값을 다른 변수에 담아줄수 있다.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    
    <script>
        
        function plus(num1,num2){
            return num1+num2;
        }
        function minus(num1,num2){
            return num1-num2;
        }
        
        var mply = function(num1,num2){
            return num1*num2
        }
        
        function calc(act, num1, num2){
            return act(num1,num2);
        }
    
        console.log(calc(minus,10,20));
        
    </script>
    
    
</body>
</html>