JavaScript - Chapter 3-6. Global 객체

nhs312
0

Global 객체와 그 멤버

Global 객체는 지금까지 등장한 객체와 다르다. 인스턴스화 하는 것도 불가능하고 method를 호출할 수도 없다.
Global 객체란 global 변수나 global 함수를 관리하기 위해서 Javascript가 자동으로 생성하는 편의적인 객체이다.
global 변수/함수는 함수의 밑에 속하지 않는 톱 레벨의 변수/함수를 말하고 직접 정의하는 것도 가능하지만 Javascript에서도 몇가지를 디폴트로 제공하고 있다.
 분류멤버 개요 
 특수값NaN 수치가 아니다. Not a Number
 undefined미정의 값 
 인코드encodeURI(str)문자열을 URI 인코딩
 decodeURI(str)문자열을 URI 디코딩 
 encodeURIComponent(str)문자열을 URI 인코딩 
 decodeURIComponent(str)문자열을 URI 디코딩 
위와같이 자주 사용하는 샘플들이 있다.


값의 명시적인 변환
Javascript는 데이터형에 관대한 언어로 문맥 상황에 따라 적절한 데이터형으로 자동으로 변환해준다. 그러나 때로는 이 변환 때문에 버그가 발생하기도 한다.
이런 이유 때문에 Javascript에서는 데이터형을 명시적으로 변환하기 위한 방법을 제공하고 있다.
예를 들어서 123xxx와 같이 숫자와 문자가 섞인 데이터가 있을 때 parseXxxxx 함수는 123으로 해석 가능한 부분을 수치로 취급한다.

문자열과 수치의 변환에서 산술 연산자 +, -를 이용할 수도 있다.
document.writeln(typeof(123+''));    // string
document.writeln(typeof('123'-0));    // number

+ 연산자는 주어진 오퍼랜드 중 한쪽이 문자열인 경우에 다른 한쪽도 자동적으로 문자열로 변환한 뒤에 연결한다. 그래서 첫째 라인에서는 수치 123을 문자열로 변환했다.
- 연산자는 주어진 오퍼랜드 중 한쪽이 수치인 경우에 다른 한쪽도 자동적으로 수치로 변환한 후 감산을 행한다. 그래서 둘째 라인에서는 문자열 123을 숫자로 변환했다.
+ 연산자는 가산 연산자와 문자열 연결 연산자의 두 성격을 가지고 있어서 오퍼랜드의 다른 한쪽이 문자열인 경우, + 연산자는 문자열 연결 연산자로서 해석이 된다.


쿼리 정보를 이스케이프 처리하기
URL 끝 부분의 ? 이후에 키=값&의 형식으로 기술되고 있는 것을 커리 정보라고 한다.
이 쿼리 정보의 ?나 =, % 등은 사용할 수가 없다. 그래서 이러한 문자가 쿼리 정보로 포함된 경우에는 문자열을 변환할 필요가 있다.
이러한 처리를 URI encode라고 한다.

var str = '!"#$%&()+-*/@~_|;:,.';
document.writeln(encodeURI(str));    // !%22#$%25&()+-*/@~_%7C;:,.


Tags:

댓글 쓰기

0댓글

댓글 쓰기 (0)