이 챕터는 자바스크립트가 인지하고 사용할 수 있는 값, 상수 그리고 리터럴에에 대해서 다룹니다.
값
JavaScript는 다음 형식을 인식합니다.
•
숫자 : 42 나 3.14159논리 값 (boolean) : true 또는 false문자열 : "Howdy!"등null : null 값을 나타내는 특별한 키워드입니다. null 는 기본 값이기도 합니다. JavaScript는 대소 문자를 구분하기 위해 null 은 Null 이나 NULL 등과는 다릅니다.undefined : 값이 정의되지 않은 최상위 속성. undefined 는 기본 값이기도 합니다.
이것은 어플리케이션에서 유용한 기능을 수행하는데 비교적 적은 기능일 수 있습니다.정수와 실수 사이에 뚜렷한 차이가 없고, 정확한 날짜 자료형도 없습니다. 그러나 Date 객체와 메소드를 사용하여 날짜를 처리 할 수 있습니다.
개체 와 함수는 자바스크립트 언어의 또 다른 중요 요소입니다. 객체는 값과 함수(실행 가능한 절차)를 모아서 이름 붙인 것으로 생각할 수 있습니다.
데이터 형식 변환
JavaScript는 동적 타입 언어입니다. 따라서 변수 선언 할 때 타입을 지정하지 않아도 되고, 스크립트 실행 중에 필요에 따라 데이터 형식이 자동으로 변환됩니다. 예를 들어 다음과 같이 숫자형 변수를 정의했다면 :
var answer = 42;
JavaScript
복사
나중에 이 변수에 문자열을 할당 할 수 있습니다 :
answer = "Thanks for all the fish ..." ;
JavaScript
복사
JavaScript는 동적 타입 언어이기 때문에, 이렇게 대입하더라도 에러를 내지 않습니다.
숫자와 문자열을 + 연산자로 결합하는 식으로, JavaScript는 숫자를 문자열로 변환합니다.
다음 문장을 보면 :
x = "The answer is" + 42 // "The answer is 42" 을 반환합니다.
y = 42 + "is the answer" // "42 is the answer" 를 반환합니다.
JavaScript
복사
다른 연산자가 있는 식은 JavaScript는 숫자를 문자열로 변환하지 않습니다. 예를 들면 :
"37" - 7 // 30를 반환
"37" + 7 // "377" 를 반환
JavaScript
복사
문자열에서 숫자로 변환
숫자를 나타내는 값이 문자열로 저장되어있는 경우 이것을 변환하는 방법이 있습니다.
parseInt () 및 parseFloat () (parseInt () 및 parseFloat () 페이지를 참조하십시오.)
parseInt 는 정수만 반환되므로 소수는 잘립니다. 또한 parseInt 는 10진수 또는 16진수와 같은 기수 매개 변수를 사용할 수 있습니다.
parseInt(" 0xF", 16);
parseInt(" F", 16);
parseInt("17", 8);
parseInt(021, 8);
parseInt("015", 10);
parseInt(15.99, 10);
parseInt("FXX123", 16);
parseInt("1111", 2);
parseInt("15*3", 10);
parseInt("15e2", 10);
parseInt("15px", 10);
parseInt("12", 13);
JavaScript
복사
+ 연산자
문자열에서 숫자로 변환하기 위해 + 연산자를 사용할 수도 있습니다.
"1.1" + "1.1" = "1.11.1"
(+"1.1" ) + (+"1.1" ) = 2.2 // 참고 : 괄호는 명확하게 표현하기 위한 것으로, 필수는 아닙니다.
JavaScript
복사
변수
응용 프로그램에서 값을 식별하는 이름으로, 변수를 사용합니다. 변수 이름은 '식별자'라고 하는 규칙에 따라야 합니다.
JavaScript의 식별자는 알파벳, 밑줄 (_) 또는 달러 기호 ($)로 시작해야 합니다. 그 뒤에는 숫자 (0-9)도 사용할 수 있습니다.JavaScript는 대소 문자를 구분하기 위해 사용할 수 있는 알파벳은 "A"에서 "Z"(대문자) "a"에서 "z"(소문자)입니다.
JavaScript 1.5, å 나 ü 같은 ISO 8859-1이나 Unicode 문자를 식별자로 사용할 수 있습니다. \\uXXXX 같은 Unicode escape sequences 를 식별자로 사용 할 수 있습니다.
Number_hits , temp99 , _name 가 사용할 수 있는 이름의 예입니다.
변수 선언
2 가지 방법으로 변수를 선언 할 수 있습니다 :
•
var 키워드를 사용합니다. 예를 들어, var x = 42 입니다. 이 구문은 로컬 변수와 글로벌 변수 를 선언하는데 사용할 수 있습니다.그냥 값을 대입합니다. 예를 들어, x = 42 입니다. 이것은 언제든지 전역 변수를 선언 할 수 있지만 엄격한 JavaScript 경고 ( strict JavaScript warning )가 발생합니다. 이 방법은 사용하지 않는 것이 좋습니다.
변수의 평가
var 문을 사용하여 초기 값 없이 선언 된 변수는 undefined 값을 취합니다.
선언되지 않은 변수에 액세스 하면 ReferenceError 예외가 발생합니다 :
var A;
console.log ( "The value of a is" + a); // "The value of a is undefined" 를 출력
console.log ( "The value of b is" + b); // ReferenceError 예외가 발생
JavaScript
복사
undefined 를 사용하여 변수에 값이 포함되어 있는지를 확인할 수 있습니다.다음 코드에서는 변수 input 에 값이 할당되지 않고, if 문에서의 평가 결과는 true 입니다.
var input;
if (input === undefined) { doThis ();} else { doThat ();}
JavaScript
복사
undefined 는 불리언 문맥에서 사용되면 false 로 평가됩니다. 예를 들어 다음 코드에서는 myArray 의 원소가 정의이기 때문에 함수 myFunction 이 실행됩니다 :
var myArray = New Array ();
if (! myArray [0]) myFunction ();
JavaScript
복사
undefined 는 숫자 문맥에서 사용되면 NaN 으로 변환됩니다.
var a;a + 2 = NaN;
JavaScript
복사
null 변수를 평가하면 숫자 컨텍스트에서 null 값은 0으로 동작합니다. 또한 boolean 컨텍스트에서 false로 평가됩니다. 예를 들어 :
var n = null
;console.log (n * 32) // 0을 출력
JavaScript
복사
변수의 범위
변수를 함수 외부에 선언하면 그 변수는 현재 문서의 모든 코드에서 사용할 수 있기 때문에 글로벌 (global) 변수라고 합니다. 변수를 함수 안에서 선언하면 그 변수는 함수 내에서만 사용할 수 없기 때문에 로컬 (지역) 변수라고 합니다.
JavaScript에는 블록 구문 범위(block statement scope)가 없습니다. 오히려 그 블록이 포함 된 코드가 지역화됩니다. 예를 들어 다음 코드에서 x가 if문의 블록 내에서 선언되었다 하더라도 if 문 자체가 구현된 함수 (혹은 글로벌 컨텍스트) 내에서 범위가 유효하므로 5를 출력합니다. (역주: var 선언이 함수 내부라면 블록에 상관없이 그 함수 안에서는 유효한 변수가 됩니다. 기존 언어가 블록 이내에서만 유효했던 것과 다릅니다.)
if ( true ) {
var x = 5;
}
console.log (x);
JavaScript
복사
JavaScript 변수에 대한 색다른 점은 나중에 선언 될 변수에 예외를 발생시키지 않고 참조 할 수 있다는 점입니다. 이런 컨셉은 'hoisting' 으로 알려져 있습니다. JavaScript 변수는 "hoisted" 상태로 함수 또는 문장의 맨 위로 존재하는 것처럼 간주됩니다. 아직 초기화되지 않은 변수는 undefined 값을 반환합니다.
/ **
* 예 1
* /
console.log (x === undefined) // "true" 가 로그 됨.
var x = 3;
JavaScript
복사
/ **
* 예 2
* /
// undefined 값이 리턴 됩니다
var myvar = "my value" ;
( function () {
console.log (myvar); // undefined 가 출력됨
var myvar = "local value" ;
}) ();
JavaScript
복사
제로 위 예 2는 다음과 같이 해석됩니다 :
var myvar = "my value" ;
( function () {
var myvar; //실제 코드에는 없지만 hoisted 되었음.
console.log (myvar); //따라서 undefined가 출력 됨.
myvar = "local value" ;
}) ();
JavaScript
복사
이러한 hoisting 성질을 피하는 가장 종은 방법은 함수에 있는 모든 var 문을 함수에서 가능한 위쪽에 놓는 것입니다. 이것은 코드의 명확성을 높이는 최선의 방법입니다.
글로벌 변수
글로벌 변수는 실제로는 전역 개체의 속성입니다. Web 페이지에서 전역 개체는 window 입니다.따라서 window.variable 구문을 사용하여 전역 변수를 정의하거나 액세스 할 수 있습니다.
그래서 Web페이지 또는 프레임에서 선언 된 전역 변수는 페이지 이름 또는 프레임의 이름을 지정하여 다른 페이지/프레임에서 액세스 할 수 있습니다. 예를 들어 phoneNumber 변수를 FRAMESET 문서에서 선언하면 자식 프레임에서 parent.phoneNumber로 그 변수에 접근할 수 있습니다.
상수
const 키워드를 사용하여 읽기 전용의 이름있는 상수를 만들 수 있습니다. 상수 식별자의 구문은 변수 식별자 정의 규칙과 같습니다. 식별자는 알파벳 또는 밑줄로 시작해야 하며, 전체적으로 알파벳, 숫자, 밑줄만 허용 합니다.
const prefix = '212';
JavaScript
복사
상수는 대입에 의해 값을 바꾸거나 스크립트 실행 중에 다시 선언 할 수 없습니다.
상수의 범위 규칙은 const 키워드가 전역 상수에 대해서도 항상 필수인 것을 제외하고, 변수의 규칙과 동일합니다. 이 키워드를 생략하면 해당 식별자는 변수를 나타내는 것으로 간주됩니다.
같은 범위에 있는 함수 나 변수와 같은 이름의 상수를 선언 할 수 없습니다. 예를 들면 :
//이 경우, 오류가 발생
Function F () {};
const f = 5;
//이 경우에도 오류가 발생
Function F () {
const g = 5;
var g;
// 다음 문장
}
JavaScript
복사
리터럴
JavaScript는 값을 표현하기 위해 리터럴을 사용합니다. 이들은 고정 값이고, 변수가 아니며, 말 그대로 스크립트에 표현하는 구문입니다. 이 섹션에서는 다음 리터럴에 대해 설명합니다 :- Array 리터럴- Boolean 리터럴- Floating-point 리터럴- Integers- Object 리터럴- String 리터럴
배열 리터럴
배열 상수 값은 0 개 이상의 표현식 리스트이며, 각각의 식은 배열의 요소를 나타냅니다. 이 요소들은 큰 괄호 ([])로 둘러싸여 있습니다. 배열 리터럴을 사용하여 배열을 만들 때, 그 배열은 지정된 값이 요소로 초기화되며 배열의 길이는 지정된 인수의 개수로 설정됩니다.
다음 예에서는 3 개의 요소를 가지고 길이가 3 인 배열 coffees 를 만듭니다 :
var coffees = "French Roast" , "Colombian" , "Kona" ];
JavaScript
복사
주의 : 배열 리터럴 개체 initializer의 일종입니다. 개체 initializer 사용을 참조하십시오.
최상위 스크립트에서 리터럴을 사용하여 배열을 만드는 경우, JavaScript는 배열 리터럴을 포함하는 식을 평가할 때마다 배열로 해석합니다. 또한 함수 내에서 사용 된 상수 값은 함수가 호출 될 때마다 생성됩니다.
배열 리터럴은 Array 개체이기도 합니다. Array 개체의 자세한 내용은 Array 개체 를 참조하십시오.
배열 리터럴 여분의 쉼표
배열 리터럴 모든 요소를 지정할 필요는 없습니다. 연달아 2 개의 쉼표를 놓으면 배열은 지정되지 않은 요소를 undefined 로 만듭니다. 다음 예제는 fish 라는 배열을 만듭니다.
var Fish = [ "Lion" , "Angel" ];
JavaScript
복사
이 배열은 값을 가지는 요소를 2 개 빈 요소를 하나 가지고 있습니다 ( fish [0] 은 "Lion", fish [1] 은 undefined , fish [2] 는 "Angel").
요소 목록의 마지막에 쉼표를 붙인 경우 쉼표는 무시됩니다. 다음 예제에서는 배열의 길이는 3입니다. myList [3] 은 존재하지 않습니다. 목록에 있는 다른 쉼표는 새 요소를 나타냅니다. ( 주의 : 마지막 쉼표는 오래된 브라우저에서 오류를 일으킬 수 있으므로 제거 하는 것이 좋습니다)
var myList = [ 'home' , 'school', ];
JavaScript
복사
다음 예제에서는 배열의 길이는 4입니다. myList [0] 과 myList [2] 이 빠져 있습니다.
var myList = [ , 'home', ,'school' ];
JavaScript
복사
다음 예제에서는 배열의 길이는 4입니다. myList [1] 과 myList [3] 이 빠져 있습니다. 마지막 쉼표 만 무시됩니다.
var myList = [ 'home', , 'school' , ];
JavaScript
복사
자신의 코드를 작성할 때 추가 쉼표의 동작을 이해하는 것은 JavaScript 언어를 이해하는 데 중요합니다. 누락 된 요소를 명시 적으로 undefined 로 선언하는 것은 코드의 가독성과 유지보수성을 향상시킬 것입니다.
boolean 상수 값
boolean 타입은 2 개의 리터럴 값, true 와 false 가 있습니다.
primitive인 boolean 값 true 와 false 를 Boolean 개체의 true 나 false 값을 혼동해서는 안됩니다. Boolean 객체는 primitive인 boolean 타입의 랩퍼 객체입니다. 자세한 내용은 Boolean 개체를 참조하십시오.
정수
정수는 10 정확한 숫자, 16 진수, 8 진수로 표현 가능합니다.- 10 진수 정수 리터럴은 시작이 0(zero) 이 아닌 일련의 숫자로 구성됩니다.- 정수 리터럴에서 시작이 0(zero)이면 8 진수를 나타냅니다. 8 진수 정수는 0에서 7까지의 숫자로만 구성됩니다.- 처음 0x (또는 0X)는 16 진수를 보여줍니다. 16 진수 정수 숫자 (0 ~ 9)와 a에서 f 및 A에서 F까지의 문자로 구성됩니다.
8 진수 정수 리터럴은 폐지되고 ECMA-262 3 판에서 제거합니다 ( strict mode 에서).JavaScript 1.5에서는 여전히 하위 호환성을 위해 지원하고 있습니다.
정수 리터럴의 예는 다음과 같습니다 :
0,117, -345 (10 진수)
015,0001, -077 (8 진수)
0x1123, 0x00111-0xF1A7 (16 진수)
JavaScript
복사
부동 소수점 리터럴
부동 소수점 리터럴은 다음의 부품으로 구성되어 있습니다 :정수부 (앞에 "+"나 "-" 부호를 달고 있다)
소수점 (".")
소수
지수
지수는 "e"또는 "E" 다음에 정수가 나오며, 정수 앞에 부호 ( "+"또는 "-")를 붙일 수 있습니다. 부동 소수점 리터럴은 하나의 숫자와 소수점 또는 "e"(또는 "E")가 필요합니다.
3.1415-3.1E12, .1 e12, 2E-12가 부동 소수점 리터럴의 예입니다.
보다 간결하게 쓰면 다음과 같은 형식입니다 :
[digits] [. digits] [(E | e) (+ | -) digits]
예 :
3.14
2345.789
.3333333333333333333
JavaScript
복사
객체 리터럴
객체 리터럴은 0 개 이상의 속성 이름과 값으로 된 한 쌍의 목록이며, 중괄호 ({})로 묶어 표시합니다. 객체 리터럴을 코드의 시작 부분에서 사용하지 않도록 하십시오. {가 블록의 시작으로 해석되므로 오류 및 예기치 않은 동작을 일으킬 수 있습니다.
다음 개체 리터럴을 보여줍니다. car 개체의 첫 번째 요소는 myCar 속성을 정의합니다. 두 번째 요소는 함수 ( CarTypes ( "Honda") )를 호출 getCar 속성입니다. 세 번째 요소는 기존의 변수 ( Sales )를 사용하는 special 속성입니다.
var Sales = "Toyota";
Function CarTypes (name) {
return (name == "Honda" )
name :
"Sorry, we don't sell" + name + ""
}
var Car = {myCar : "Saturn" getCar : CarTypes ( "Honda" ), special : Sales};
console.log (car.myCar); // Saturn
console.log (car.getCar); // Honda
console.log (car.special); // Toyota
JavaScript
복사
또한 숫자 리터럴이나 문자열 리터럴을 속성 이름에 사용하거나 개체를 다른 개체의 중첩 할 수 있습니다. 다음 예제에서는 이 옵션을 사용합니다.
var Car = {manyCars : {a : "Saab" , "b" : "Jeep" } 7 : "Mazda" };
console.log (car.manyCars.b); // Jeep
console.log (car[7]); // Mazda
다음 사항에 주의하십시오 :
var foo = {a : "alpha" , 2 : "two" };
console.log (foo.a); // alpha
console.log (foo [2]); // two
// console.log (foo.2); // Error : missing) after argument list
// console.log (foo [a]); // Error : a is not defined
console.log (foo ["a"] ); // alpha
console.log (foo ["2"] ) // two
JavaScript
복사
문자열 리터럴
문자열 리터럴은 0 개 이상의 문자를 큰 따옴표 ( " ) 나 작은 따옴표 ( ' )로 묶은 것입니다.문자열은 같은 종류의 따옴표로 감싸지 않으면 안됩니다. 즉 모두 작은 따옴표를 쓰거나 모두 큰 따옴표를 사용해야 합니다. 다음이 문자열 리터럴의 예입니다 :
"foo"
'bar'
"1234"
"one line \n another line"
"John 's cat"
JavaScript
복사
문자열 리터럴의 값은 String 개체의 모든 메소드를 호출 할 수 있습니다. JavaScript가 자동으로 문자열 리터럴을 임시 String 객체로 변환하고 메서드를 호출하고 임시 String 객체를 삭제합니다. String.length 속성을 문자열 리터럴에서 사용 할 수 있습니다 :
"John 's cat".length
JavaScript
복사
특히 String 객체를 사용할 필요가 없는 경우에는 문자열 리터럴을 사용하도록 하십시오. String 개체의 자세한 내용은 String 개체를 참조하십시오.
문자열에서 특수 문자 사용
일반 문자 외에도 문자열에서 특수 문자를 사용할 수 있습니다. 다음 예를 살펴 보겠습니다.
"one line \n another line"
JavaScript
복사
다음 테이블은 JavaScript 문자열에 사용할 수 있는 특수 문자 표입니다.
표 2.1 JavaScript 특수 문자
문자 | 의미 |
\b | 백 스페이스 |
\f | form feed 기호 |
\n | 줄 바꿈 |
\r | Carriage return (캐리지 리턴 기호) |
\t | 탭 |
\v | 수직 탭 |
\' | 아포스트로피 나 작은 따옴표 기호 |
\" | 큰 따옴표 기호 |
\\ | 백 슬래시 (\) 기호 |
\XXX | 0에서 377까지의 3 자리 8 진수 XXX 에서 지정된, Latin-1 인코딩의 문자. 예를 들어, \251은 저작권 기호를 나타냅니다. |
\xXX | 00 FF까지의 두 자리 16 진수 XX 로 지정된, Latin-1 인코딩의 문자. 예를 들어, \xA9는 저작권 기호를 나타냅니다. |
\UXXXX | 4 자리의 16 진수 XXXX 로 지정된 Unicode 문자. 예를 들어, \x00A9는 저작권 기호를 나타냅니다. Unicode escape sequences 를 참조하십시오. |
문자 이스케이프
표 2.1에 나와 있지 않은 문자는 앞에 백 슬래쉬도 무시되지만, 이 사용법은 폐지되었습니다 때문에 사용을 피해야 합니다. 백 슬래시를 앞에 붙이는 것으로, 따옴표를 문자열에 포함 할 수 있습니다. 이것을 "따옴표를 이스케이프 한다." 라고 표현 합니다. 예를 들면 :
var Quote = "He read \"The Cremation of Sam McGee \" by RW Service ";
console.log (quote);
JavaScript
복사
이 결과는 다음과 같습니다 :
He read "The Cremation of Sam McGee"by RW Service.
JavaScript
복사
문자열에 백 슬래시 자체를 포함하려면 백 슬래시 이스케이프를 사용합니다.예를 들어, 문자열에 c : \ temp 라는 파일 경로를 지정하려면 다음과 같이합니다 :
var Home = "c:\\temp" ;
JavaScript
복사
줄의 앞에 백 슬래시를 배치하여 줄 바꿈을 이스케이프 할 수 있습니다. 아래처럼 작성하면 여러 줄에 걸쳐 하나의 문자열을 표현할 수 있습니다.
var str = "this string \
is broken \
across multiple \
lines. "
console.log (str); // this String is Broken Across multiplelines
JavaScript
복사
JavaScript에 "heredoc"구문은 아니지만, 각 행의 끝에 줄 바꿈 이스케이프 표기와 이스케이프로 줄 바꿈과 동일하게 표현 할 수 있습니다.
var poem =
"Roses are red \n\
Violets are blue \n\
I'm schizophrenic \n\
And so am I. "
JavaScript
복사
Unicode
Unicode는 주요 문자 언어를 표현하기 위한 문자 - 코딩 표준입니다. 이것은 미국, 유럽, 중동, 아프리카, 인도, 아시아, 태평양 지역의 언어, 또한 역사적인 기호나 기술 분야 기호를 다루고 있습니다. Unicode는 다국어 텍스트의 교환, 처리, 표현을 지원합니다. 또한 일반적인 기술 기호 및 수학 기호도 가능합니다. 국가 별 문자 표준으로 인해서 여러 언어를 국제화 문제를 해소 할 것으로 기대되고 있습니다. 그러나 모든 새로운 문자나 고대 문자까지 지원하는 것은 아닙니다.
Unicode 문자 집합은 모든 유명한 인코딩에 사용할 수 있습니다. Unicode는 ASCII (American Standard Code for Information Interchange) 문자 세트를 모델로하고 있습니다. 이것은 각 문자에 숫자와 이름을 지정합니다. 문자 인코딩은 문자의 식별 정보 및 숫자 (코드 위치)와 함께 숫자 값의 비트 표현을 명시합니다. 16 비트 숫자 (코드 값)은 16 진수 값과 접두어 U에서 정의됩니다. 예를 들어, U +0041은 A를 나타냅니다. 이 값에 대한 고유 한 이름은 LATIN CAPITAL LETTER A입니다.
주의 JavaScript 1.3 이전 버전에서는 Unicode를 지원하지 않습니다.
Unicode의 ASCII 및 ISO와 호환
Unicode는 ISO / IEC 10646-1; 1993과 완전히 호환되며, 이것은 ISO 10646의 부분 집합입니다.
일부 인코딩 표준 (UTF-8, UTF-16, ISO UCS-2 포함)는 Unicode를 실제 비트로 물리적으로 표기하는 데 사용됩니다.
Unicode의 UTF-8 인코딩은 ASCII 문자와 호환되며 많은 프로그램에서 지원되고 있습니다. Unicode 문자의 첫 번째 128 문자는 ASCII 문자에 대응하고, 같은 바이트 값을 가지고 있습니다. Unicode 문자 U +0020에서 U +007 E까지 ASCII 문자 0x20부터 0x7E까지와 동일합니다. ASCII는 라틴 알파벳을 지원하고 7 비트 문자 집합을 사용하지만, UTF-8은 한 문자를 1 개부터 4 바이트를 사용합니다 ( "8 진수"는 바이트 또는 8 비트). 이를 통해 수백만 개의 문자를 표현할 수 있습니다. 다른 인코딩 표준 인 UTF-16은 Unicode 문자 표현에 2 바이트를 사용합니다. 이스케이프 시퀀스는 UTF-16은 Unicode의 범위를 4 옥텟으로 표현 할 수 있습니다. ISO UCS-2 (Universal Character Set)는 2 바이트를 사용합니다.
JavaScript와 Navigator는 UTF-8/Unicode를 지원하고 있기 때문에, 비 라틴 문자, 국제 문자, 지역화 된 문자, 특수 기술 기호를 JavaScript 프로그램에서 사용할 수 있습니다. Unicode는 다국어 텍스트를 인코딩하는 표준 방법을 제공합니다. Unicode의 UTF-8 인코딩이 ASCII와 호환되기 때문에, ASCII 문자를 프로그램에 사용할 수 있습니다. 또한 비 ASCII 문자를 JavaScript의 주석, 문자열 리터럴, 식별자 및 정규식 사용 할 수 있습니다.
Unicode 이스케이프 시퀀스
문자열 리터럴, 정규 표현식, 식별자에 Unicode 이스케이프 시퀀스를 사용할 수 있습니다. 이스케이프 시퀀스는 ASCII 문자 여섯로 구성됩니다. 그것은 \\u와 4 자리의 16 진수입니다. 예를 들어, \u00A9는 저작권 기호를 나타냅니다. JavaScript에서는 모든 Unicode 이스케이프 시퀀스가 하나의 문자로 해석됩니다.
다음 코드는 저작권 문자와 "Netscape Communications"라는 문자열을 반환합니다.
var x = "\ u00A9 Netscape Communications";
JavaScript
복사
다음 표에서는 일반적으로 사용되는 특수 문자와 Unicode 값을 열거합니다.
표 2.2 특수 문자의 Unicode 값
카테고리 | Unicode 값 | 이름형식 | 이름 |
공백 값 | \ u0009 | 탭 | < TAB > |
\ u000B | 수직 탭 | < VT > | |
\ u000C | 페이지 나누기 | < FF > | |
\ u0020 | 공간 | < SP > | |
줄 끝 값 | \ u000A | 줄 바꿈 | < LF > |
\ u000D | 복귀 | < CR > | |
추가적인 Unicode 이스케이프 시퀀스 값 | \ u0008 | 후퇴 | < BS > |
\ u0009 | 수평 탭 | < HT > | |
\ u0022 | 큰 따옴표 | " | |
\ u0027 | 작은 따옴표 | ' | |
\ u005C | 백 슬래시 | \ |
JavaScript에서 Unicode 이스케이프 시퀀스 사용 방법은 Java의 사용 방법과 다릅니다.JavaScript에서, 이스케이프 시퀀스가 처음부터 특수 문자로 해석 될 수 없습니다. 예를 들어, 문자열에 있는 줄 끝 이스케이프 시퀀스는 함수가 문자열을 해석 이전에 문자열을 중단 할 수 없습니다. 어떤 이스케이프 시퀀스를 코멘트로 사용하여, JavaScript는 그것을 무시합니다. Java에서는 한 줄 주석에 이스케이프 시퀀스가 사용 된 경우, 그것을 Unicode 문자로 해석합니다. 문자열 리터럴에서 Java 컴파일러는 이스케이프 시퀀스를 해석합니다. 예를 들어 줄 끝 이스케이프 문자 (예 : \u000A)는 Java에서 사용되면 문자열 리터럴을 중단합니다. 또한 Java에서는 줄 끝 문자열 리터럴에서 허용되지 않기 때문에 오류가 발생합니다. 문자열 리터럴에 개행 문자를 넣으려면 반드시 \n을 사용해야 합니다. JavaScript에서 이스케이프 시퀀스는 \n과 같은 방식으로 작동합니다.
JavaScript 파일에서 Unicode 문자
이전 버전의 Gecko 는 XUL에서 로드되는 JavaScript 파일은 Latin-1 문자 인코딩을 전제로 하고있었습니다. Gecko 1.8이후부터 문자 인코딩은 XUL 파일의 인코딩에서 추측됩니다. 자세한 내용은 XUL JavaScript의 국제 문자 를 참조하십시오.
Unicode를 이용한 문자 표시
Unicode를 이용하여 다른 언어 나 기술 분야 기호를 표시 할 수 있습니다. 문자를 제대로 표시하려면 Mozilla Firefox 나 Netscape 같은 클라이언트가 Unicode를 지원해야 합니다. 또한 적절한 Unicode 글꼴도 클라이언트에서 사용할 수 있어야 하며, 클라이언트 플랫폼의 Unicode 지원도 필요합니다. Unicode 글꼴이 Unicode 문자를 모두 볼 수 없는 경우가 자주 있습니다. Windows 95 같은 Unicode를 부분적으로 지원하는 플랫폼도 있습니다.
비 ASCII 문자 입력을 받기 위해서는 클라이언트가 입력을 Unicode로 전송 해야합니다. 표준 확장 키보드를 사용하면 Unicode에서 지원되는 추가적인 문자를 클라이언트가 쉽게 입력 할 수 없습니다. Unicode 문자를 입력 할 수 있는 유일한 방법이 Unicode 이스케이프 시퀀스 일 수 있습니다.
Unicode에 대한 자세한 내용은 Unicode Home Page 와 The Unicode Standard, Version 2.0 (출판사 : Addison-Wesley, 1996)를 참조하십시오.
추가 리소스
Text Escaping and Unescaping in JavaScript - 문자 JavaScript의 Unicode 값으로 변환하는 유틸리티
저작권 공지
이 문서의 모든 저작권은 Mozilla.org에 있습니다. 이 문서는 "모질라 기여자"들에 의해 작성 되었습니다. 원문 보기 저희가 한글로 번역한 2차적저작물에 대한 저작권 역시 Mozilla.org에 있습니다.