대부분의 경우 연산자와 함수는 제공된 값을 올바른 유형으로 자동 변환합니다.
예를 들어 alert
모든 값을 문자열로 자동 변환하여 표시합니다. 수학 연산은 값을 숫자로 변환합니다.
값을 예상 유형으로 명시적으로 변환해야 하는 경우도 있습니다.
아직 객체에 대해 이야기하지 않음
이 장에서는 객체를 다루지 않습니다. 지금은 기본 요소에 대해서만 이야기하겠습니다.
나중에 객체에 대해 배운 후 객체에서 기본 변환 장에서 객체가 어떻게 적용되는지 살펴보겠습니다.
문자열 변환은 문자열 형식의 값이 필요할 때 발생합니다.
예를 들어, alert(value)
값을 표시하기 위해 수행됩니다.
값을 문자열로 변환하기 위해 String(value)
함수를 호출할 수도 있습니다.
값 = true로 두십시오. 경고(값 유형); // 부울 값 = 문자열(값); // 이제 값은 "true" 문자열입니다. 경고(값 유형); // 끈
문자열 변환은 대부분 명백합니다. false
"false"
가 되고, null
"null"
이 됩니다.
수학 함수 및 표현식의 숫자 변환은 자동으로 수행됩니다.
예를 들어, 숫자가 아닌 숫자에 나누기 /
적용되는 경우:
경고( "6" / "2" ); // 3, 문자열은 숫자로 변환됩니다.
Number(value)
함수를 사용하여 value
숫자로 명시적으로 변환할 수 있습니다.
str = "123"; 경고(문자열 유형); // 끈 num = Number(str)로 둡니다; // 숫자 123이 됩니다. 경고(번호 유형); // 숫자
명시적 변환은 일반적으로 텍스트 형식과 같은 문자열 기반 소스에서 값을 읽지만 숫자가 입력될 것으로 예상할 때 필요합니다.
문자열이 유효한 숫자가 아닌 경우 이러한 변환의 결과는 NaN
입니다. 예를 들어:
let age = Number("숫자 대신 임의의 문자열"); 경고(나이); // NaN, 변환 실패
숫자 변환 규칙:
값 | 된다… |
---|---|
undefined | NaN |
null | 0 |
true and false | 1 과 0 |
string | 시작과 끝의 공백(공백, 탭 t , 개행 n 등 포함)이 제거됩니다. 나머지 문자열이 비어 있으면 결과는 0 입니다. 그렇지 않으면 문자열에서 숫자를 "읽습니다". 오류가 발생하면 NaN 발생합니다. |
예:
경고(번호(" 123 ") ); // 123 경고(번호("123z") ); // NaN("z"에서 숫자를 읽는 중 오류 발생) 경고(숫자(true) ); // 1 경고( 숫자(false) ); // 0
여기서는 null
과 undefined
다르게 동작한다는 점에 유의하세요. null
0이 되고 undefined
는 NaN
됩니다.
대부분의 수학 연산자도 이러한 변환을 수행합니다. 이에 대해서는 다음 장에서 살펴보겠습니다.
부울 변환은 가장 간단한 변환입니다.
이는 논리 연산에서 발생하지만(나중에 조건 테스트 및 기타 유사한 작업을 수행하게 됩니다) Boolean(value)
호출하여 명시적으로 수행할 수도 있습니다.
변환 규칙:
0
, 빈 문자열, null
, undefined
및 NaN
과 같이 직관적으로 "비어 있는" 값은 false
가 됩니다.
다른 값은 true
가 됩니다.
예를 들어:
경고( 부울(1) ); // 진실 경고( 부울(0) ); // 거짓 Alert( Boolean("안녕하세요") ); // 진실 경고( 부울("") ); // 거짓
참고: "0"
이 0인 문자열은 true
입니다.
일부 언어(예: PHP)는 "0"
false
로 처리합니다. 그러나 JavaScript에서는 비어 있지 않은 문자열은 항상 true
입니다.
경고( Boolean("0") ); // 진실 경고( 부울(" ") ); // 공백도 true입니다(비어 있지 않은 문자열은 모두 true입니다).
가장 널리 사용되는 세 가지 유형 변환은 문자열, 숫자 및 부울입니다.
String Conversion
– 무언가를 출력할 때 발생합니다. String(value)
으로 수행할 수 있습니다. 문자열로의 변환은 일반적으로 기본 값의 경우 명확합니다.
Numeric Conversion
– 수학 연산에서 발생합니다. Number(value)
로 수행할 수 있습니다.
변환은 다음 규칙을 따릅니다.
값 | 된다… |
---|---|
undefined | NaN |
null | 0 |
true / false | 1 / 0 |
string | 문자열은 "있는 그대로" 읽혀지며 양쪽의 공백(공백, 탭 t , 개행 n 등 포함)은 무시됩니다. 빈 문자열은 0 이 됩니다. 오류가 발생하면 NaN 발생합니다. |
Boolean Conversion
– 논리 연산에서 발생합니다. Boolean(value)
으로 수행할 수 있습니다.
다음 규칙을 따릅니다.
값 | 된다… |
---|---|
0 , null , undefined , NaN , "" | false |
다른 값 | true |
이러한 규칙의 대부분은 이해하고 기억하기 쉽습니다. 사람들이 일반적으로 실수를 저지르는 주목할만한 예외는 다음과 같습니다.
undefined
0
아닌 숫자인 NaN
입니다.
"0"
및 " "
와 같은 공백 전용 문자열은 부울로서 참입니다.
여기서는 객체를 다루지 않습니다. JavaScript에 대해 더 기본적인 사항을 배운 후 객체에만 전념하는 기본 변환 장에서 객체에 대해 다시 설명하겠습니다.