1. 논리 OR 연산자(||) 사용:

    const tagname = payload.tagname || 'div';
    

    이 코드는 **payload.tagname**이 falsy 값 (예: null, undefined, false, 0, '', 등)일 때 **'div'**를 **tagname**에 할당합니다. 즉, **payload.tagname**이 **0**이나 '' (빈 문자열) 같은 falsy 값이라도 **'div'**로 대체됩니다.

  2. Null 병합 연산자(??) 사용:

    const tagname = payload.tagname ?? 'div';
    

    이 코드는 **payload.tagname**이 **null**이나 **undefined**일 때만 **'div'**를 **tagname**에 할당합니다. 다른 falsy 값들 (예: false, 0, '')은 그대로 유지됩니다.

  3. 객체 분해 할당 사용:

    const { tagname = 'div' } = payload;
    

    이 코드는 payload 객체에서 tagname 속성을 추출합니다. 만약 **payload**에 tagname 속성이 **undefined**이거나 존재하지 않는다면, **tagname**은 **'div'**로 초기화됩니다. 이 방법은 null 값에 대해서는 기본값을 할당하지 않습니다.

    만약 payload 객체 자체가 undefined 또는 **null**이라면, 이 코드는 오류를 발생시킵니다.

차이점