eval()
eval('2+2') ⇒ 4
isFinite()
console.log(isFinite(Infinity) //false
console.log(isFinite(NaN) //false
console.log(isFinite('hello') //false
console.log(isFinite(0) //true
console.log(isFinite('10') //true
console.log(isFinite(null) //true => null도 유한수로 판단함!
isNaN()
isNaN(NaN) // true
isNaN(undefined) // true: undefined → NaN
isNaN({}) // true: {} → NaN
isNaN('blabla') // true: 'blabla' → NaN 문자열은 Nan처리'
isNaN('37') // false: '37' → 37 숫자로된 문자열은 숫자로 알아서 보는듯해서 false
isNaN(true) // false: true → 1
isNaN(null) // false: null → 0
parseFloat()
parseInt()
이스케이프 처리
네트워크를 통해 정보를 공유할 때 어떤 시스템에서도 읽을 수 있는 ASCII Character-set로 변환하는 것이다. UTF-8 특수문자의 경우, 1문자당 1~3byte, UTF-8 한글 표현의 경우, 1문자당 3btye이다. 예를 들어 특수문자 공백(space)은 %20, 한글 ‘가’는 %EC%9E%90으로 인코딩된다.
이스케이프 처리 이유
URI 문법 형식 표준 RFC3986에 따르면 URL은 ASCII Character-set으로만 구성되어야 하며 한글을 포함한 대부분의 외국어나 ASCII에 정의되지 않은 특수문자의 경우 URL에 포함될 수 없다. 따라서 URL 내에서 의미를 갖고 있는 문자(%, ?, #)나 URL에 올 수 없는 문자(한글, 공백 등) 또는 시스템에 의해 해석될 수 있는 문자(<, >)를 이스케이프 처리하여 야기될 수 있는 문제를 예방하기 위함이다.
단 아래의 문자는 이스케이프 처리에서 제외된다.
- 알파벳, 0~9의 숫자, - _ . ! ~ * ‘ ( )
encodeURI() / decodeURI()
var uri = '<http://example.com?name=이웅모&job=programmer&teacher>';
var enc = encodeURI(uri);
var dec = decodeURI(enc);
console.log(enc);
// <http://example.com?name=%EC%9D%B4%EC%9B%85%EB%AA%A8&job=programmer&teacher>
console.log(dec);
// <http://example.com?name=이웅모&job=programmer&teacher>
encodeURIComponent() / decodeURIComponent
var uriComp = '이웅모&job=programmer&teacher';
// encodeURI / decodeURI
var enc = encodeURI(uriComp);
var dec = decodeURI(enc);
console.log(enc);
// %EC%9D%B4%EC%9B%85%EB%AA%A8&job=programmer&teacher
console.log(dec);
// 이웅모&job=programmer&teacher
// encodeURIComponent / decodeURIComponent
enc = encodeURIComponent(uriComp);
dec = decodeURIComponent(enc);
console.log(enc);
// %EC%9D%B4%EC%9B%85%EB%AA%A8%26job%3Dprogrammer%26teacher
console.log(dec);
// 이웅모&job=programmer&teacher