JavaScript

[JavaScript] IIFE(즉시 실행 함수 표현식), strict mode(엄격 모드)

SangRok Jung 2022. 4. 12. 21:46
반응형

 

IIFE (즉시 실행 함수 표현식)

"Immediately Invoked Function Expression"의 약어로 정의 되자마자 즉시 실행되는 함수다.

  • 임시 객체를 이용하여 함수의 선언과 동시에 호출하는 기법
  • 여러 개의 <script>에 대한 독립성 보장(이름 충돌 등)

 

 

▶ 형식

(function() { })()

<body>
    <script>
        (function(n)
        {
            console.log(n)
        })(5)

        //5
    </script>
</body>
<body>
    <script>
    
        (function()
        {
            const two = function(n)
            {
                return n * 2
            }

            const one = 1
            console.log(two(one))
        })()

        //2
    </script>
</body>

 

 

▶ 충돌 회피

사용자 'A'와'B'가 pi를 다르게 정의하였을 때 즉시 호출로 해결할 수 있다.

 

 

 

 

 

 


 

 

 

 

 

 

strict mode (엄격 모드)

  • 문법 사용에 대한 규칙 강화.
  • 일반적으로 즉시 호출에 use strict사용, 다른 코드 블록 간의 간섭 방지.
  • strict mode를 사용했다고 해서 자신의 코드가 견고 해지는 것이 아니다.

 

▶ 형식

'use strict'

 

 

▶ 예시

엄격 모드 비사용

<body>
    <script>
    
        (function()
        {
            x = 10;
            console.log(x)
        })()

        //10
    </script>
</body>

엄격 모드 사용

<body>
    <script>
        
        'use strict'
        (function()
        {
            x = 10;
            console.log(x)
        })()

        //Uncaught TypeError: "use strict" is not a function
    </script>
</body>

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

구버전의 호환성은 버려야 한다.

 

반응형