New in JavaScript 1.6
MDC
JavaScript 1.6 여러 새 기능(E4X, 여러 새 Array 메소드, Array과 String generic)을 소개합니다.
JavaScript 1.6은 Firefox 1.5와 이후 버전에서 지원합니다.
목차 |
[편집] E4X
ECMAScript for XML (E4X)는 JavaScript 안의 XML 컨텐트를 만들고 처리하는 강력한 기술입니다. 우리는 기존 DOM과의 transparent한 통합 추가를 포함하는 E4X 지원 향상을 계속할 예정이지만 XML 기반 웹 응용프로그램을 만드는(build) 개발자는 Firefox 1.5의 E4X 지원에서 이득을 얻을 수 있습니다.
아직은 E4X를 쓸 때 표준 MIME 형을 쓸 수 있습니다.
<script type="text/javascript">
그러나, E4X 구문이 옛날 브라우저에서 그것을 숨기기 위해 HTML 주석 (<!--...-->)에 스크립트를 넣는 흔한 관례(practice)와 충돌할지도 모릅니다. E4X 또한 스크립트에 기호 "<"와 ">"를 허용하는 XML CDATA 절 (<![CDATA[...]]>) 에 스크립트를 놓는 더 현대식 관례와 충돌할지도 모릅니다(이는 HTML에는 적용되지 않음을 주의하세요). 만약 설명할 수 없는 구문 에러를 보면, MIME 형에 "; e4x=1"를 보태세요.
<script type="text/javascript; e4x=1">
확장기능의 스크립트는 항상 HTML 주석을 E4X 상수(literal)로 다룸을 주의하세요. 즉, "e4x=1"을 묵시(implicit)로 적용합니다.
E4X는 Processing XML with E4X에서 설명합니다.
[편집] Array 추가분
두 갈래(item location 메소드와 iterative 메소드)로 구분할 수 있는 7가지 새 Array 메소드가 있습니다. item location 메소드는
-
indexOf()- 주어진 item의 맨 처음 출현(occurrence) 인덱스를 반환합니다. -
lastIndexOf()- 주어진 item의 맨 마지막 출현 인덱스를 반환합니다.
iterative 메소드는
-
every()- 함수가 참을 반환하는 동안 배열의 항목들에 함수를 돌립니다. 만약 함수가 방문할 수 있는 모든 항목에 대해 참을 반환하면 참을 반환합니다. -
filter()- 배열의 각 항목에 함수를 돌리고 함수가 참을 반환하는 모든 항목의 배열을 반환합니다. -
forEach()- 배열의 모든 항목에 함수를 돌립니다. -
map()- 배열의 모든 항목에 함수를 돌리고 배열에 결과를 반환합니다. -
some()- 함수가 거짓을 반환하는 동안 배열의 항목들에 함수를 돌립니다. 만약 함수가 방문할 수 있는 어떤 항목에 참을 반환하면 참을 반환합니다.
더 자세한 정보는 Working with Arrays나 Nicholas C. Zakas의 기사 Mozilla's New Array Methods를 보세요.
[편집] Array와 String generic
간혹 배열 메소드를 문자열에 쓰고 싶습니다. 이리하여, 문자열을 문자 배열로 다룹니다. 예를 들어, 변수 str의 모든 문자(character)가 문자(letter)인지 검사하기 위해, 당신은 작성합니다.
function isLetter(character) {
return (character >= "a" && character <= "z");
}
if (Array.prototype.every.call(str, isLetter))
alert("The string '" + str + "' contains only letters!");
이 표기(notation)는 약간 낭비라서 JavaScript 1.6은 generic 속기(shorthand)를 도입합니다.
if (Array.every(str, isLetter))
alert("The string '" + str + "' contains only letters!");
비슷하게 문자열 메소드를 어느 개체든지 쉽게 적용할 수 있습니다.
var num = 15; alert(String.replace(num, /5/, '2'));