본문 바로가기

웹개발/javascript

자바스크립트 Global 오브젝트

 

 

자바스크립트의 ES5기반으로 한 기본 개념들입니다.  

공부했던 내용을 정리하는 용도로 오류가 있을 수 있습니다.

재배포 수정하지 마세요. 

 

 

 

 


 

 

Global 오브젝트

 

Global 오브젝트 프로퍼티

console.log(NaN);                           //NaN
console.log(Infinity);                      //Infinity
console.log(undefined);                     //undefined

NaN, Infinity, undefined

상수개념으로 사용된다. 

 

 

 

 

 

parseInt( )

console.log(parseInt(123.23));              //123
console.log(parseInt("-123px"));             //-123
console.log(parseInt("123px777"));          //123
console.log(parseInt("   123.5  "));        //123
console.log(parseInt(12, 16));              //18
console.log(parseInt(0x12));                //18
console.log(parseInt());                    //NaN

 

아규먼트를 분해해서 정수값으로 반환한다. 

만약 문자열이라면 숫자로 변환하고 문자를 탈락시킨다. 이때 탈락시킨 문자 뒤에 오는 숫자도 함께 탈락시킨다. 

실수라면 소숫점 아래를 탈락시켜 정수로 만든다. 

진수를 적용하여 값을 반환시키고 0또는 빈 문자열은 NaN를 반환시킨다. 

 

 

 

 

 

parseFloat( )

console.log(parseFloat("-123.33") + 6);         //-117.33
console.log(parseFloat("12.3abc3"));            //12.3
console.log(parseFloat("1.2e5"));               //120000
console.log(parseFloat());                      //NaN

 

값을 실수로 변환하여 반환한다. 

문자열을 실수로 반환할떄는 문자를 숫자로 변환하고 문자를 탈락시킨다. 이때 탈락시킨 문자뒤에 오는 숫자도 함꼐 탈락시킨다. 지수, 공백도 변환하여 반환시킨다.

0또는 빈 문자열은 NaN를 반환시킨다. 

 

 

 

 

 

isNaN( )

console.log(isNaN("aa"));                       //true
console.log(isNaN());                           //true
console.log(isNaN(123));                        //false
console.log(isNaN("123"));                      //false
console.log(isNaN(null));                       //false

console.log(NaN === NaN);                       //false
console.log(Object.is(NaN, NaN));               //true

 

값이 NaN인지 아닌지 확인하여 NaN라면 true를 NaN가 아니라면 false를 반환시킨다. 

숫자값이 아니라면 NaN 이다. 

여기서 주의해야 할 점은 null은 0으로 취급되어 NaN가 아니라는 점이다.

아래에 NaN와 NaN가 값과 타입이 같은지 평가하는 식에서는 자바스크립트의 오류로 ES6부터는 두개를 확인하는 함수가 새로 추가되었다. 

 

 

 

 

 

isFinite( )

console.log(isFinite("aa"));                    //false
console.log(isFinite(0/0));                     //false
console.log(isFinite(1/0));                     //false
console.log(isFinite("11"));                    //true
console.log(isFinite(123));                     //true
console.log(isFinite(false));                   //true

 

값의 유한성을 테스트한다.  값이 유한하다면 true를 무한하다면 false를 반환한다. 문자열 값이 숫자로 변환되면 숫자로 인식한다. 문자열도 무한한 것에 해당된다. 

값이 긍정적이거나 부정적 Infinity이거나 NaN또는 undefined라면 false이고 그렇지 않으면 true이다.

 

 

 

 

 

encodeURI( ), decodeURI( )

console.log(encodeURI("index/&번호=?123"));          // index/&%EB%B2%88%ED%98%B8=?123));  
console.log(decodeURI("index/&%EB%B2%88%ED%98%B8=?123"));    //index/&번호=?123 

 

encodeURI() : URI의 특정 문자를 제외한 나머지를 "%16진수"의 형태로 인코딩해서 반환한다. 

decodeURI() : "%16진수"의 형태를 반대로 디코딩해서 반환한다. 

 

 

 

 

 

eval( )

var result = eval("parseInt('123.3')");
console.log(result);                                //123

 

문자열 값을 자바스크립트 코드로 대신하여 실행시킨다. 

보안상 문제가 많아서 사용하지 않는것을 권장한다.