ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • #JavaScript Grammar_형 변환
    Javascript 2023. 10. 16. 11:56

    # 형 변환이란? 

    javascript의 데이터 타입 형태를 바꾸는 것을 뜻하며, 의도하지 않았지만 자동으로 바뀌는 것을 암시적 형 변환이라고 하고, 일부러 개발자가 의도적으로 바꾸는 것을 명시적 형 변환이라고 함. 


    #1. 암시적 형 변환(Implicit Type Conversion)

    암시적 형 변환은 JavaScript 엔진이 자동으로 데이터 타입을 변환하는 것을 의미.

    1-1) 문자열(String)

    let result1 = 1 + "2";
    console.log(result1); // "12"
    console.log(typeof result1); // "string"
    
    let result2 = "1" + true;
    console.log(result2); // "1true"
    console.log(typeof result2); // "string"

    - 두 경우 모두 숫자와 문자열이 연산되면 문자열로 암시적 형 변환이 발생하게 되며, 결과 값은 문자열. 

    - 더하기 연산자로 만나면 문자열이 우선시 됨.  ex) { }, null. undefined + "1" => 문자열 

     

    1-2) 숫자(Number)

    let result3 = 1 - "2";
    console.log(result3); // -1
    console.log(typeof result3); // "number"
    
    let result4 = "2" * "3";
    console.log(result4); // 6
    console.log(typeof result4); // "number"

    -  + 연산이 아닌 -, *, / 연산은 JavaScript에서 문자열과 문자열 간, 또는 문자열과 숫자 간에도 숫자가 우선시되어 암시적 형 변환됨. 따라서 결과 값은 숫자로 나타남. 


    #2. 명시적 형 변환(Explicit Type Conversion)

    명시적 형 변환은 개발자가 의도적으로 데이터 타입을 변환하는 것을 의미. 데이터를 원하는 데이터 타입으로 변환하려고 할 때 사용됨. 

    2-1) Boolean 

    console.log(Boolean(0)); // false
    console.log(Boolean("")); // false
    console.log(Boolean(null)); // false
    console.log(Boolean(undefined)); // false
    console.log(Boolean(NaN)); // false

    - 명시적으로 `Boolean( )` 함수를 사용하여 다양한 값들을 불리언으로 변환했고, 숫자 0, 빈 문자열, null, undefined, NaN은 모두 `false`로 변환됨. 

     

    +++  추가로 아래의 경우와 비어 있지 않은 문자열이나 객체는 `true`로 명시적 변환이됨. 

    console.log(Boolean("false")); // true
    console.log(Boolean({})); // true

    - ` Boolean("false")`: "flase"는 비어 있지 않은 문자열로 `true`로 변환됨.

    - ` Boolean({ })`: 빈 객체는 비어 있지 않은 객체로 `true`로 변환됨 

     

    2-2) 문자열(string)

    let result5 = String(123);
    console.log(typeof result5); // "string"
    console.log(result5); // "123"
    
    let result6 = String(true); 
    console.log(typeof result6); // "string"
    console.log(result6); // "true"
    
    let result7 = String(false); 
    console.log(typeof result7); // "string"
    console.log(result7); // "false"
    
    let result8 = String(null);
    console.log(typeof result8); // "string"
    console.log(result8); // "null"
    
    let result9 = String(undefined);
    console.log(typeof result9); // "string"
    console.log(result9); // "undefined"

    - `String( )` 함수를 사용하여 숫자, 불리언, null, undefined 등의 값을 문자열로 명시적 변환함. 

     

    2-3) Number

    let result10 = Number("123");
    console.log(result10); // 123
    console.log(typeof result10); // "number"

    - `Number( )` 함수를 사용하여 문자열 "123"을 숫자로 명시적 변환함. 

Designed by Tistory.