4.1 값 변환

jude·2022년 2월 15일
0

you don't know js

목록 보기
30/30
post-thumbnail

어떤 값을 다른 타입으로 바꾸는 과정이 명시적이면 '타입 캐스팅', 암시적이면 '강제변환'이라고 하는데, '명시적 강제변환'은 코드만 봐도 의도적으로 타입변환을 일으킨다는 사실이 명백한 반면, '암시적 강제변환'은 다른 작업 도중 불분명한 부수 효과로부터 발생하는 타입변환이다.

var a = 42;

var b = a + ""; // 암시적 강제변환

var c = String( a ); // 명시적 강제변환

b와 c 모두 숫자 데이터 42를 문자 데이터 "42"로 강제변환한다.

a + ""의 의미를 정확히 파악하고 의도적으로 문자열 변환을 했다면, 그 자체로 충분히 '명시적'이지 않냐고 생각할 수 있다.
반대로, 한 번도 문자열 강제변환 시 String() 함수를 사용한 적 없는 사람에겐 이것이야말로 '암시적'이지 않냐고 반문할 수 있다.

중요한 것은 내가 작성한 코드를 나만 보게 될 일은 아주 드물다는 것이다.
회사에서 일을 할 때 나 뿐만 아니라 다른 개발자들과 협업하며 코드를 유지보수 해나갈 때 명시적 변환과 암시적 변환을 각각 어떻게 받아들일까?

언제나 제일 어려운 말이지만.
상황에 맞게, 유도리 있게, 미래를 생각해서.

profile
UI 화면 만드는걸 좋아하는 UI개발자입니다. 프론트엔드 개발 공부 중입니다. 공부한 부분을 블로그로 간략히 정리하는 편입니다.

0개의 댓글