본문 바로가기
카테고리 없음

node.js / 자바스크립트 - 형변환 ( TYPE CASTING )

10장이 너무 글이 적은것 같아서 ㅎ.. 하나 더 올립니다.

앞에서 다룬 변수에는 숫자형과 문자형이 있는데요.
만일 숫자형과 문자형을 혼합해 사용하려면 어떻게 해야 할까요?

이를 테면 숫자변수 count에는 10이란 값이 들어 있고

visit=1000000;


아래와 같은 문구를 출력하려고 합니다.
"100000만번째 방문하셨습니다."

자바스크립트에서는 고민할 필요가 없습니다.
그냥 아래와 같이 써주면 되거든요.

console.log(visit + "번째 방문하셨습니다");


그러면 숫자였던 visit 는 자동으로 문자열로 바뀌어 문자열 이어 붙이기가 작동합니다.
이렇게 변수의 형태가 바뀌는 것을 타입 캐스팅(Type Casting)이라고 하는데요.

반드시 숫자문자끼리 연산이 되어야만 문자열로 바뀝니다.
문자를 숫자로 바꿀때는 일부 예외가 있는데요.
아래와 같이 내용만 숫자인 변수는 더해주더라도 문자열 기능이 작동됩니다.

x="100";
y="200";
z=x+y; // 300이 나오지 않고 ‘100200’이 보관


하지만 덧셈이 아닌 곱셈을 할 경우, 특이하게도 곱셈 연산 기능이 작동합니다.

x="100";
y="200";
z=x*y; // 20000, 음? 맞게 계산되었네?


그것은 곱셈 기호를 사용하는 순간 문자열 연산이 아니라는 것이 명확하기 때문이지요.
덧셈이 아닌 모든 연산이 마찬가지입니다.
아래 코드는 “4”가 숫자형으로 타입캐스팅되어 결과 3을 출력합니다.

console.log("4"-1);  // 3


만일 2개의 변수가 문자열형이지만 내용이 숫자일 때 덧셈을 하는 경우에도
타입 캐스팅되도록 해서 숫자끼리 더하고 싶다면 어떻게 해야 할까요?

매우 여러가지 방법이 있어 정답이라고 꼽을순 없으나 간단한 방법을 소개해 드립니다.
변수 앞에 각각 +기호를 붙이면 됩니다. 그러면 해결됩니다.

x = "100";
y = "200";
z = +x + +y; // 결과 300


그외 다른 방법으로 아래와 같은 방법도 있습니다.

방법2

x = "100";
y = "200";
z = Number(x)  +  Number(y);


방법3

x = "100";
y = "200";
z = parseInt(x) + parseInt(y);

필요하신 분에게 도움이 되시길 바랍니다. 그러면 이만 :)

도움이 되셨다면 공감 한방, 댓글은 굿잡!
감사합니다~


다음 게시글 : https://itadventure.tistory.com/481

 

node.js / 자바스크립트 - 조건문 if 1형식

본문은 책자에 들어가는 내용 중 일부입니다. 책자를 마무리해서 우선 심사를 넣었는데 한번에 통과하면 좋겠군요 ㅎ 조건문 1형식 : if(조건식){ … } 컴퓨터가 조건식에 따라 참, 거짓을 판단해

itadventure.tistory.com