Visit Mozilla.org

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'));

[편집] 같이 보기

Working with Array-like objects.