SW/JavaScript

JavaScript : 함수 : 디폴트 파라미터 : 기본값 설정 : 예제, 방법

얇은생각 2020. 2. 15. 07:30
반응형

JavaScript

 

Javascript의 디폴트 파라미터

디폴트 파라미터는 값이 전달되지 않는 함수 파라미터의 기본값을 설정하는 방법입니다. 

함수에서 매개 변수가 제공되지 않은 경우 값이 정의되지 않습니다. 이 경우 지정한 기본값이 컴파일러에 의해 적용됩니다.

 

 

 

예시 : 

function greet(name = "noob master") {
  console.log("Welcome mr." + name);
}
  
greet("Jagathish"); // Welcome mr.Jagathish
greet(); //Welcome mr.noob master
greet("");// Welcome mr.

 

 

 

 

기본 파라미터(ES6 이전 버전은 사용할 수 없음)를 사용하지 않으면 변수의 존재 여부를 확인하고 직접 설정해야 합니다.

function greet(name) {
  if(typeof name == undefined) {
  
    name = "noob master";
    
  }
  
  // second way is 
  
  name = name || "noob master";
  
  console.log("Welcome mr." + name);
}

 

 

 

다음은 기본 매개 변수를 사용하는 또 다른 예입니다. 값이 정의되지 않은 경우(undefined)에만 적용됩니다.

function test(num = 1) {
  
    console.log(num);
    
}
  
test(); 1
test(undefined); 1
test(null); null
test(""); ""
test(false); false
test(NaN); NaN

 

 

 

기본값을 선언할 때 다른 기능 매개 변수를 사용할 수도 있습니다.

function test(num1 , num2 = num1 * 2) {
    console.log(num1 * num2);
}
test(2); 8
test(2,3); 6

 

위의 코드에서 num1은 num2에 대한 기본값 할당에서 액세스됩니다.

 

 

함수를 기본값으로 사용할 수도 있습니다. 함수는 JavaScript에서다른 변수처럼 취급할 수 있습니다.

function greet(name, greetMethod = defaultGreet) {
    greetMethod(name);
    
}
function defaultGreet(name) {
  console.log("default Good morning mr." + name );
  
}
function customGreet(name) {
  console.log("Custom Good morning mr" + name);
  
}
greet("Jagathish")  //default Good morning mr.Jagathish
greet("Jagathish", customGreet); //Custom Good morning mr.Jagathish

 

 

 

함수를 평가하고 반환된 값을 사용하여 기본값을 설정할 수 있습니다.

function getDefaultNum() {
  
   return 5;
    
}
  
function square(num = getDefaultNum() ) {
  
   return num * num;
    
}
  
square(10); // 100
  
square(); //25

 

 

 

어떤 순서로든 기본 파라미터를 사용할 수 있으며, 이는 기본 파라미터 이후에 기본 파라미터가 아닌 파라미터를 사용할 수 있음을 의미합니다.

function test(a = 10, b, c =100 , d) {
  console.table(a, b, c, d);
  
}
test(undefined, 10); // 10,10,100,undefined
test(100); // 100, undefined, 100 , undefined
test(); // 10, undefined, 100, undefined

 

반응형