블로그 보관함

2014년 2월 26일 수요일

JavaScript 03 형 변환

<script>
"use strict";
 형변환 (type conversion) : 연산을 수행하기 위해 피 연산자를 서로 일치 시키는 것
 1) 명시적 형변환 (explicit) : 명령어로 값을 원하는 유형으로 변환
 2) 암시적 형변환 (implicit) : 명령어를 수행하는 과정 중에 자바 스크립트 엔진이 자동으로 변환

 * 명시적 형변환

 형변환 도구 : Number(), String(), Boolean(), Object()
 *** 참고 ***
 특별히 객체를 지정하지 않고 도구를 사용할 경우, 해당 도구는 window 객체에 있다
 JavaScript에서 사용하는 모든 도구는 window 객체에 속해있다.
 Number(값) -> window.Number(값)
 문제1) 숫자로 바꾸기
console.log('test..ok');
window.console.log('test..okok');
console.log('data Number transform');
console.log(window.Number(undefined)); //return NaN (Not a Number)
console.log(Number(null)); //return 0
console.log(Number(true)); //return 1
console.log(Number(false)); //return 0
console.log(Number("")); //return 0
console.log(Number('3.14')); //return 3.14
console.log(Number('ok')); //return NaN
console.log(Number(10)); //return 10
console.log(Number(NaN)); //return NaN
console.log(Number({name:'peter', age:20})); //return NaN

 문제2) 문자열로 바꾸기
console.log('data String transform');
console.log(window.String(undefined)); //return 'undefined'
console.log(String(null)); //return 'null'
console.log(String(true)); //return 'true'
console.log(String(false)); //return 'false'
console.log(String("")); //return ''
console.log(String('3.14')); //return '3.14'
console.log(String('ok')); //return 'ok'
console.log(String(10)); //return '10'
console.log(String(NaN)); //return 'NaN'
console.log(String({name:'peter', age:20})); //return tree node
   
 문제3) 불린으로 바꾸기
console.log('data Boolen transform');
console.log(window.Boolean(undefined)); //return false
console.log(Boolean(null)); //return false
console.log(Boolean(true)); //return true
console.log(Boolean(false)); //return false
console.log(Boolean("")); //return false
console.log(Boolean('3.14')); //return true
console.log(Boolean('ok')); //return true
console.log(Boolean(10)); //return true
console.log(Boolean(NaN)); //return false
console.log(Boolean({name:'peter', age:20})); //return true
   

 * 암시적 형변환

사용자의 입력에 특별한 지시가 없이도 브라우저가 임의대로 명령을 수행하기 위해 data의 type을 변형시키는 것

console.log('암시적 형변환-------------------------');
console.log(20 && 30); // return 30
console.log(true < false); // return false
console.log(true <<2 ); // return 4
console.log('20' - '30'); // return -10
console.log('20' + '30'); // return 2030
</script>

댓글 없음:

댓글 쓰기