ECMA-262을 기반으로 JavaScript 파서를 작성했습니다. 나는 그것을 ECMA-357과 호환되도록 변경해야 할 필요가 있는지 알고 싶다.ECMA-262와 ECMA-357의 구문에는 어떤 차이점이 있습니까?
구문상의 차이점이 있습니까?
ECMA-262을 기반으로 JavaScript 파서를 작성했습니다. 나는 그것을 ECMA-357과 호환되도록 변경해야 할 필요가 있는지 알고 싶다.ECMA-262와 ECMA-357의 구문에는 어떤 차이점이 있습니까?
구문상의 차이점이 있습니까?
많은 구문 확장이 있습니다.
이var foo = <xml>
foo
</xml>;
var bar = <>
<tag attr={(1+2).toFixed(2)}/>
{foo}
</>;
위의 예제는 XML 코드에서 빈 루트 태그와 자바 스크립트 표현의 특별한 경우를 보여줍니다 가장 중요한 하나는 XML 리터럴 (섹션 11.1.4 및 11.1.5 참조)이다.
당신은 또한 ECMA-262에 유효하지 않은 일부 표현이 (11.2 절 참조)
[email protected] // get attribute attr
xml.* // get all child elements
[email protected]* // get all attributes
xml..foo // get all <foo> tags
xml..foo.(@id == 1) // filter <foo> tags by id attribute
있습니다 네임 스페이스 (11.1.2 항 참조)이
xml.soap::foo // get <foo> child tags with namespace soap
[email protected]::attr // get attribute with namespace soap
는 구문 상 매우 일반적인 구조 인 기본 XML 네임 스페이스 문입니다 (12.1 절 참조).
default xml namespace = new Namespace("http://foo/bar");
Fi 나는이 모든 구문의 차이를 알고 마찬가지로 지금까지
for each (var foo in xml)
{
}
을 -하지만 당신은 아마 이미 충분있어 : nally는, for .. in
유사하다 for each .. in
루프가 (12.3 절 참조).
와우. 이게 진짜야? -/ – copy
@copy : XML 데이터로 작업해야한다면 일반적인 DOM 호출보다 훨씬 낫고 (더 깔끔하고 읽기 쉽다), 종종 부분을 가져올 때 루프와 결합된다. 여기에있는 예제는 실제 코드에서 수행 할 수있는 것이 아니라 구문 적으로 가능한 것을 설명합니다. –
브라우저와 관련하여 E4X는 Firefox에서만 지원되며 더 이상 지원되지 않습니다. 이 시점에서 그것은 죽은 기술처럼 보입니다. – duskwuff
@duskwuff : 아야 ... 당신이 https://bugzilla.mozilla.org/show_bug.cgi?id=389123#c9를 찾았다 고 말한 후에 - 실제로 조용히 사용되지 않는 것처럼 보입니다. 나는 다른 브라우저 공급 업체가 7 년 만에 그것을 구현하지 못했다는 결론을 얻었을뿐입니다. –