프로그래밍 언어의 어휘 구조는이 언어를 작성하는 방법을 설명하는 데 사용되는 기본 규칙 세트입니다. 구문의 기초로서 변수 이름의 모습, 주석 작성 방법 및 진술을 구별하는 방법을 지정합니다. 이 섹션에서는 매우 짧은 공간을 사용하여 자바 스크립트의 어휘 구조를 소개합니다.
1. 캐릭터 세트
JavaScript 프로그램은 Unicode 문자 세트, ASCII 및 Latin-1의 슈퍼 세트로 작성 되며이 지역의 거의 모든 언어를 지원합니다. ECMAScript3은 JavaScript의 구현이 유니 코드 2, 1 및 후속 버전을 지원해야하며 ECMASCRIPT5는 JavaScript의 구현이 유니 코드 3 및 후속 버전을 지원해야합니다.
나. 사례에 민감합니다
JavaScript는 사례에 민감한 언어, 즉 키워드, 변수, 함수 이름 및 모든 표현 문자는 일관되게 케이스해야합니다. 예를 들어, 키워드는 중간에 쓰여져 있어야하며, 그대로 또는 기간으로 작성할 수 없습니다.
그러나 html은 대소 문자를 민감하지는 않지만 (xhtml은 다르지만) 클라이언트 JavaScript와 밀접한 관련이 있기 때문에 혼란 스러울 수 있습니다. 예를 들어, HTML이 설정 한 처리 이벤트에서 onclick 속성은 OnClick으로 작성 될 수 있지만 javaScript에서는 onclick으로 작성할 수 있습니다.
II 공간, 라인 브레이크 및 형식 컨트롤러
JavaScript는 프로그램의 토큰 사이의 공간을 무시합니다. 대부분의 경우 JavaScript는 또한 라인 브레이크를 무시합니다. 코드에서 공백과 라인 브레이크를 사용 할 수 있으므로 깔끔하고 일관된 압입을 한 번에 사용하여 통합 인코딩 스타일을 형성하여 코드의 가독성을 향상시킬 수 있습니다.
공간 문자를 식별하는 것 외에도 JavaScript (/u0020). JavaScript는 또한 수평 탭 문자 (/u0009), 수직 탭 문자 (/u000b), 페이지 갱신 문자 (/u000c), 비 인간의 흰색 스페이스 문자 (/u00a0), 엔디 언 태그 (/ufeff) 및 유니 코드의 모든 Z 범주의 문자를 나타내는 다음 문자를 표시합니다. JavaScript는 다음 문자를 종료 문자로 인식합니다 : Line Break (/u000a), 캐리지 리턴 심볼 (/u000D), 라인 분리기 (/u2028) 및 세그먼트 분리기 (/u2029). 캐리지 리턴 문자와 라인 브레이크 캐릭터는 단일 라인 엔딩 캐릭터로 구문 분석됩니다.
유니 코드 형식은 "오른쪽에서 왼쪽에서 writ 이는 JavaScript 주석, 문자열 직접 수량 및 정규식 직접 수량에 사용할 수 있지만 식별자 (예 : 가변 이름)에 사용할 수는 없지만 식별자 (/u200D) 및 제로 폭이없는 비 연결기 (/ufeff)에 대한 예외가 있지만 손잡이로 사용될 수는 있지만 손으로 사용할 수는 없습니다. 또한 바이트 순서 표시 형식 제어 문자 (/ufeff)가 공간으로 취급된다고 위에서 언급되어 있습니다.
III. 유니 코드 이스케이프 시퀀스
일부 컴퓨터 하드웨어 및 소프트웨어에서는 전체 유니 코드 문자 세트를 표시하거나 입력 할 수 없습니다. 이전 기술을 사용하는 프로그래머를 지원하기 위해 JavaScript는 6 개의 ASCII 문자를 사용하여 16 비트 유니 코드 내부 코드를 나타내는 특수 순서를 정의합니다. 이 유니 코드 이스케이프 시퀀스는 /u에 의해 접두어에 의해 접두어가 있으며, 16 진 쥐 (숫자와 대문자 및 소문자 AF로 표시됨)가 이어집니다. 이 유니 코드 탈출 쓰기는 JavaScript String 직접 수량, 일반 표현식 및 식별자 (키워드 제외)로 사용할 수 있습니다. 예를 들어, 문자 É의 유니 코드 탈출은 /u00e9로 작성되며 다음 두 JavaScript 문자열은 정확히 동일합니다.
"Café"=== "CAF/U00E9"=> true
유니 코드 이스케이프 쓰기는 주석에 나타날 수 있지만 JavaScript는 주석을 무시하기 때문에 컨텍스트에서 ASCII 문자로 취급되며 유니 코드 문자가 뒤 따르지 않습니다.
IIII 표준화
유니 코드를 사용하면 여러 방법을 사용하여 동일한 문자를 인코딩 할 수 있습니다. 예를 들어, 문자 É는 유니 코드 문자 /u00e9를 사용하거나 일반 ASCII 문자 E를 사용하여 톤 기호 /u0301을 따라갈 수 있습니다. 텍스트 편집기 에서이 두 인코딩에 표시된 결과는 정확히 동일하지만 이진 인코딩 표현은 다르고 컴퓨터에서는 동일하지 않습니다. 유니 코드 표준은 인덱스 문자의 선호 코드 형식을 정의하고 표준화 된 처리 방법을 제공하여 텍스트를 비교에 적합한 표준 형식으로 변환하며 더 이상 다른 표현, 문자열 또는 정규식을 표준화하지 않습니다.
2. 댓글
JavaScript는 두 가지 주석 방법을 지원합니다. 줄 끝에서 "//"이후의 텍스트는 JavaScript에 의해 주석으로 무시됩니다.
또한 / *와 * / 사이의 텍스트도 주석으로 사용됩니다. 이런 종류의 댓글은 한 줄에 걸쳐 쓸 수 있지만 중첩 된 의견은 없습니다.
// 한 줄의 주석
/*
*
*
*
*/
3. 직접 수량
소위 직접 수량 (문자)은 프로그램에 직접 사용되는 데이터 값입니다. 직접 수량은 아래에 나열되어 있습니다.
코드 사본은 다음과 같습니다.
12 // 숫자
1.2 // 소수점
"hllo world"// 문자열 텍스트
'HI'// 다른 문자열
진실 // 부울
거짓 // 부울
/javaScript /gi // 정규식 직접 수량 (패턴 일치로 사용)
null // 비어 있습니다
3 장에서는 숫자와 문자열의 직접적인 양을 자세히 설명합니다. 정규 표현의 직접적인 양은 10 장에서 설명 될 것입니다. 더 많은 복지 표현은 배열이나 물체로 직접 쓸 수 있습니다.
{x : 1, y : 2} // 객체
[1,2,3,4,5] // 배열
4. 식별자 및 예약 된 단어
식별자는 이름입니다. JavaScript에서 식별자는 변수와 함수의 이름을 지정하거나 JavaScript 코드의 특정 루프 문에서 점프 위치를 표시하는 데 사용됩니다. JavaScript 식별자는 편지에 있어야합니다. 밑줄 또는 달러 표시가 시작됩니다. 후속 문자는 편지가 될 수 있습니다. 숫자. 밑줄 또는 달러 표시 (숫자는 이니셜로 표시되지 않으며 JavaScript는 식별자를 숫자와 쉽게 구별 할 수 있고 다음은 법적 식별자입니다.
코드 사본은 다음과 같습니다.
my_variable_name
B13
_더미
$ str
휴대 성과 편의성을 위해, 우리는 일반적으로 ASCII 문자와 숫자 만 사용하여 식별자를 작성합니다. 그런 다음 JavaScript는 식별자의 전체 유니 코드 문자 세트에서 문자와 숫자를 허용합니다 (기술에서 ECMAScript에 이르기까지 유니 코드 문자 메커니즘의 MN 클래스 및 P 클래스는 식별자의 첫 번째 문자 이후에 나타납니다). 따라서 프로그래머는 영어가 아닌 언어 나 수학적 기호를 사용하여 식별자를 작성할 수 있습니다.
코드 사본은 다음과 같습니다.
var sá = true;
var π = 3.14;
JavaScript는 일부 식별자를 키워드로 사용하므로 이름은 더 이상 이러한 키워드를 프로그램에서 식별자로 사용할 수 없습니다.
코드 사본은 다음과 같습니다.
부서지다
사례
잡다
계속 계속하십시오
기본
삭제 삭제
하다
또 다른
마지막으로
~을 위한
기능
만약에
~에
인스턴스
새로운
반품
스위치
이것
던지다
노력하다
타입
var
무효의
하는 동안
~와 함께
JavaScript 예약 단어
클래스 const enum 내보내기
내보내기는 수퍼 슈퍼를 확장합니다
또한이 키워드는 정상적인 JavaScript에서 합법적이지만 엄격한 모드에서 예약 된 단어입니다.
Private Public Public Interface 패키지를 구현합니다
보호 된 정적
동일한 엄격한 모드에서는 다음 식별자가 엄격하게 제한되지만 변수 이름, 매개 변수 이름 및 기능 이름을 사용할 수 없습니다.
인수 평가
JavaScript의 특정 구현은 고유 한 글로벌 변수 및 기능을 정의 할 수 있습니다. 각 특정 javaScript 실행 환경 (클라이언트) 서버 등에는 고유 한 글로벌 속성 목록이 있어야합니다. (클라이언트 JavaScript에 정의 된 글로벌 변수 및 함수의 목록을 이해하는 Window Object)
5. 선택적 세미콜론
많은 프로그래밍 언어와 마찬가지로 JavaScript는 세미콜론 (;)을 사용하여 진술을 분리합니다. 이것은 코드의 가독성과 깔끔함을 향상시키는 데 매우 중요합니다. 분리기가없는 진술의 끝은 다음 진술의 시작이되고 그 반대도 마찬가지입니다.
JavaScript에서는 각 진술이 한 줄을 차지하고 진술 사이의 세미콜론은 일반적으로 생략 할 수 있습니다 (프로그램 끝에서 "}의 교정기"도 생략 할 수 있음). 많은 JavaScript 프로그래머 (이 책의 코드 예제 포함)는 세미콜론을 사용하여 세미콜론이 완전히 필요하지 않은 경우에도 진술의 끝을 명확하게 표시합니다. 또 다른 스타일은 세미콜론을 생략 할 수있을 때 생략하고 세미콜론을 사용해야 할 때만 사용하는 것입니다. 프로그래밍 스타일에 관계없이 JavaScript에 대해주의를 기울일 몇 가지 세부 사항이 있습니다.
다음 코드 인 첫 번째 세미콜론은 생략 할 수 있습니다
a = 3;
b = 4;
그러나 다음 형식으로 작성된 경우 첫 번째 세미콜론을 생략 할 수 없습니다.
a = 3; b = 4;
JavaScript는 모든 Newlines에서 세미콜론을 채우지 않습니다. JavaScript는 코드가 세미콜론없이 정상적으로 구문 분석되지 않은 경우에만 세미콜론을 채 웁니다. 다시 말해서 (다음 코드의 두 가지 예외와 유사), 현재 문 및 후속 비 공간 문자를 전체적으로 구문 분석 할 수없는 경우 JavaScript는 현재 문의 끝에서 세미콜론을 채 웁니다. 다음 코드를 참조하십시오
var a
에이
=
3
Console.log (a)
JavaScript는 다음과 같이 구문 분석합니다
var a; a = 3; console.log (a);
JavaScript는 첫 번째 줄에 세미콜론을 추가합니다. 세미콜론이 없으면 JavaScript는 코드에서 Var AA를 구문 분석 할 수 없습니다. 두 번째 A는 "A;"문으로 사용될 수 있지만 JavaScript는 두 번째 줄의 끝에서 세미콜론을 채우지 않습니다. 세 번째 줄 내용으로 "a = 3"으로 구문 분석 할 수 있기 때문입니다. .
일부 진술의 분리 규칙은 일부 예기치 않은 상황으로 이어질 것입니다. 이 브레이크 코드는 두 줄로 나뉩니다.
var y = x + f
(a+b) .toString ()
두 번째 줄의 브래킷은 첫 번째 줄에서 f와 함께 함수 호출을 형성합니다. JavaScript는이 코드를 간주합니다
var y = x+f (a+b) .toString ();
분명히, 코드의 원래 의도는 이와 같지 않습니다. 위의 코드를 두 가지 다른 진술로 구문 분석하려면 동작의 디스플레이 세미콜론을 수동으로 작성해야합니다.
일반적으로 말하자면 ([ / + - - 이전 진술과 관련이있을 가능성이 높습니다. / +로 시작하는 진술은 그다지 일반적이지는 않지만 ([[[[[[[)로 시작하는 것은 매우 일반적입니다. 정확하게;
현재 진술과 다음 줄 문을 병합 및 구문 분석 할 수없는 경우. JavaScript는 첫 번째 행 후에 세미콜론을 채 웁니다.이 행은 일반적인 규칙이지만 외부에는 두 개의 열이 있습니다. 첫 번째 예외는 returnm, birak과 관련이 있습니다. JavaScript는 Newline에서 세미콜론을 채 웁니다. 예를 들어
예를 들어
반품
진실;
그리고 자바 스크립트가 구문 분석되었습니다
반환; ture;
그리고 코드의 원래 의미는입니다
반환 진실;
다시 말해, 귀환, 브레이크 및 콘투 인이있는 후속 표현 사이에는 선이 나갈 수 없습니다. 라인 브레이크가 추가되면 프로그램은 특별한 상황에서만 오류 만보 고 할 수 있습니다. 또한 프로그램의 디버깅은 불편합니다.
두 번째 예는 ++ - 연산자와 관련하여, 이러한 표현 기호는 식별자 표현식의 접두사와 접미사를 나타낼 수 있습니다. 표현이 뒤 따르는 경우, 접미어 표현식으로 사용되는 경우. 그것과 표현은 한 줄로 간주되어야합니다. 그렇지 않으면 세미콜론이 줄 끝에서 채워집니다.
코드 사본은 다음과 같습니다.
엑스
++
YY
위의 코드는 다음과 같이 구문 분석됩니다
코드 사본은 다음과 같습니다.
엑스;
++ y