이전 단어
JavaScript는 간단한 언어와 복잡한 언어입니다. 사용하는 법을 배우는 데 잠시 시간이 걸리기 때문에 간단합니다. 진정으로 마스터하는 데 몇 년이 걸리기 때문에 복잡합니다. 실제로, 프론트 엔드 엔지니어는 JavaScript 엔지니어를 크게 언급합니다. 프론트 엔드를 시작하고 마스터하기가 어렵습니다. 프론트 엔드, 더 중요한 것은 JavaScript를 나타냅니다. 이 기사는 JavaScript의 기본 문법에 관한 첫 번째 기사입니다 - 어휘 구조
Java와의 관계
JavaScript에 대한 그러한 말이 있습니다. Java와 JavaScript의 관계는 Lei Feng과 Lei Feng Tower의 관계입니다. 그렇다면 중요합니까?
JavaScript의 초기 이름은 LiveScript입니다. 내가 JavaScript를 공식 이름으로 선택한 이유는 아마도 유명한 가족처럼 들리게하는 것이 었습니다. Java와 유사한 구문 외에도 JavaScript와 Java는 완전히 다른 프로그래밍 언어입니다.
프로그래밍 언어는 해석 및 컴파일 된 두 가지 범주로 나뉩니다. Java 또는 C ++와 같은 언어에는 컴파일러가 필요합니다. 컴파일러는 Java와 같은 고급 언어로 작성된 소스 코드를 컴퓨터에서 직접 실행되는 파일로 변환 할 수있는 프로그램입니다. 해석 된 프로그래밍 언어에는 컴파일러가 필요하지 않습니다. 통역사 만 필요하며 브라우저의 JavaScript 통역사는 소스 코드를 직접 읽고 실행합니다.
Java는 이론적으로 거의 모든 환경에 배치 될 수 있지만 JavaScript는 웹 브라우저에만 적용되는 경향이 있습니다. 또한 JavaScript 언어에서 기능은 독립적 인 데이터 유형이며, 프로토 타입 객체를 기반으로 한 상속 체인을 사용하고 JavaScript 구문은 Java보다 훨씬 더 자유 롭습니다.
기본적으로 JavaScript라는 이름의 원래 의미는 "Java Scripting Language와 매우 유사합니다"
정의
JavaScript는 객체 지향 및 기능적 프로그래밍 스타일에 매우 적합한 역동적이고 약한 유형 해석 프로그래밍 언어입니다. JavaScript의 구문은 Java에서 나오고 일류 기능은 체계에서 비롯되며 프로토 타입 기반 상속은 Self에서 나옵니다.
JavaScript는 페이지의 동적 효과를 향상시키고 페이지와 사용자 간의 실시간 및 동적 상호 작용을 실현하는 데 사용됩니다.
JavaScript는 ECMASCRIPT, DOM 및 BOM의 세 부분으로 구성됩니다
[1] ECMAScript는 ECMA-262에 의해 정의되며 핵심 언어 기능을 제공합니다 (ECMA는 유럽 컴퓨터 제조업체 협회)
[2] DOM (문서 개체 모델) 문서 객체 모델, 웹 페이지 컨텐츠에 액세스하고 조작하기위한 방법 및 인터페이스 제공
[3] BOM (브라우저 객체 모델) 브라우저 객체 모델, 브라우저와 상호 작용하기위한 메소드 및 인터페이스 제공
케이스 감도
언어 JavaScript와 관련하여 아무리 강조하더라도 사례 민감도입니다. 키워드, 변수, 기능 이름 및 JavaScript의 모든 식별자는 상류 및 소문자에서 일관성이 있어야합니다.
// '온라인', '온라인', '온라인', '온라인'은 네 가지 변수 이름입니다
[참고] HTML은 사례에 민감하지 않습니다
예약 된 단어
다른 프로그래밍 언어와 마찬가지로 JavaScript는 자체 사용을 위해 일부 식별자를 보유합니다. 이 예약 된 단어는 일반 식별자로 사용할 수 없습니다. 많은 참조 서적의 오해의 소지가 있기 때문에 예약 된 단어와 키워드가 분리 된 것으로 보이지만 실제로는 그렇지 않습니다. 키워드는 예약 단어의 일부일뿐입니다. 예약 된 단어에는 키워드, 향후 예약 단어, 빈 리터럴 및 부울 리터럴이 포함됩니다.
예비 단어 ::
예어
Foturereservedword
널리 문학
부울 문학
키워드
브레이크는 유형의 인스턴스를 수행합니다
케이스 else new var
캐치 마침내 void를 반환합니다
스위치를 계속하십시오
디버거 기능이 기능을 수행합니다
Throw Delete 인 경우 기본값
시도에서
향후 예약 된 단어
다음 단어는 제안 된 확장 키워드로 사용되므로 이러한 확장이 향후에 채택 될 수 있도록 예약됩니다.
클래스 열거는 슈퍼 확장됩니다
Const Export Import
ECMAScript3 버전
위는 ECMAScript5 용 예약 된 단어이지만 ECMAScript3 버전의 예약 된 단어는 다릅니다. ECMAScript3 구현을 기반으로 통역사에서 코드를 실행하려면 다음 예약 된 단어를 식별자로 사용하지 않아야합니다.
초록 부울 바이트 char 클래스 Constdouble Enum Export 확장 최종 플로트
GOTO는 INT INT Interfacelong 기본 패키지 개인 보호를 구현합니다
공개 짧은 정적 슈퍼 동기화 된 던지기 과도 휘발성
사전 정의 된 변수 및 함수
또한 JavaScript는 많은 글로벌 변수와 함수를 사전 정의했으며 이름을 식별자 이름으로 사용하지 않아야합니다.
인수 배열 부울 날짜 decodeuri decodeuricomponent encodeuriencodeuricomponent evalerror 함수 Infinity Isfinite
ISNAN JSON MATH NAN 번호 대상 PARSEFLOAT PARSEINT RENERROR
referenceError regexp String syntaxError typeError undefined urierror
논평
모든 진술이 JavaScript 통역사를 해석하고 실행 해야하는 것은 아닙니다. 때로는 자신의 참조 또는 알림을 위해 스크립트에 정보를 작성해야하며 JavaScript 통역사 가이 정보를 직접 무시할 수 있기를 바랍니다. 이 유형의 정보는 주석입니다
의견은 코드 흐름을 효과적으로 이해하는 데 도움이 될 수 있으며 코드에서 Life Note의 역할을 수행하여 스크립트가 무엇을하는지 파악하는 데 도움이됩니다.
[참고] 주석은 코드를 정확하게 설명해야합니다. 쓸모없는 의견은 의견이없는 것보다 더 나쁩니다
싱글 라인 주석, 멀티 라인 댓글 및 HTML 스타일 댓글을 포함하여 JavaScript 스크립트에 주석을 삽입하는 방법에는 여러 가지가 있습니다.
【1 line 한 줄의 주석은 두 개의 슬래시로 시작합니다
// 한 줄의 주석
slash 슬래시와 별표/*부터 시작하여 별표와 슬래시로 끝나는 멀티 라인 주석은 블록 레벨 주석이라고도합니다.*/
/*
이것은 멀티 라인 의견입니다
*/
[참고] 블록 수준의 주석/ **/의 해당 문자는 정규식 리터럴로 표시 될 수 있으므로 블록 레벨 주석은 주석화 된 코드 블록에 안전하지 않습니다.
/*
var rm_a = /a*/.match(s);
*/
【3 t HTML 스타일의 의견은 단일 라인 주석에만 적용됩니다. 실제로 JavaScript 통역사는 <!- 및 // 처리합니다.
<!- 이것은 JavaScript의 주석입니다
HTML 문서에서는 다음과 같은 주석을 종료해야합니다.
<!-이것은 html->의 주석입니다
그러나 JavaScript는 이것을 요구하지 않으며, 주석 내용의 일부로 취급합니다.
[참고] HTML은 위의 댓글이 여러 줄에 걸릴 수 있도록 허용하지만, 그러한 주석의 각 줄은 주석 "<!-"의 시작 부분에서 플래그로 추가되어야합니다.
<!- 나는 댓글 1입니다
<!- 나는 댓글 2입니다
<!- 나는 댓글 3입니다
JavaScript 통역사는이 스타일의 주석을 다룰 때 HTML과 다르기 때문에 혼란을 피하기 위해 JavaScript 스크립트에서 사용하지 않는 것이 가장 좋습니다.
HTML 스타일 댓글
공백
공백은 일반적으로 의미가 없으며 때로는 사용하여 분리되어야합니다. 그렇지 않으면 기호로 병합됩니다.
var that = this;
VAR과 제거 할 수없는 빈을 제거 할 수는 없지만 다른 공백을 제거 할 수 있습니다.
JavaScript는 프로그램의 토큰 사이의 공간을 무시합니다. 대부분의 경우 JavaScript는 또한 라인 브레이크를 무시합니다. 코드에서 공백과 라인 브레이크를 사용할 수 있으므로 깔끔하고 일관된 압입을 사용하여 통합 인코딩 스타일을 형성하여 코드의 가독성을 향상시킬 수 있습니다.
// (var i = 1; i <10; i ++)에 대한 공백 문자를 추가하여 코드 가독성 향상 {//}JavaScript는 다음을 공백 문자 공백으로 인식합니다
/u0009 수평 탭 문자 <tab>
/u000b 수직 탭 문자 <vt>
/u000c 페이지 변경 <ff>
/u0020 우주 문자 <sp>
/u00a0 비 후 간 공간 문자 <NBSP>
/ufeff 문자 순서 마크
JavaScript는 다음 문자를 라인 터미네이터 LineterMinator로 인식합니다
/u000a Newline 캐릭터 <lf>
/u000d 캐리지 리턴 문자 <cr>
/u2028 라인 구분 기 <ls>
/u2029 단락 스플리터 <ps>
선택적 세미콜론
JavaScript는 세미콜론을 사용합니다. 코드의 가독성과 깔끔함을 향상시키는 데 매우 중요한 진술을 분리합니다. 그러나 JavaScript는 모든 신약에서 세미콜론을 채우지 않습니다. 세미콜론없이 코드를 올바르게 구문 분석 할 수없는 경우에만 JavaScript는 세미콜론을 채 웁니다.
var a
에이
=
3
Console.log (a)
JavaScript는 다음과 같이 구문 분석합니다.
var a;
a = 3;
Console.log (a);
이 분리 진술 규칙은 예기치 않은 상황으로 이어질 수 있습니다.
var y = x + f
(A+B) .TOSTRING
JavaScript는 다음과 같이 구문 분석합니다.
var y = x + f (a + b) .toString
따라서 위의 코드를 두 가지 다른 진술로 구문 분석 할 수 있도록 라인 끝의 명시 적 세미콜론은 줄 끝에 수동으로 채워야합니다.
두 가지 예외
현재 진술과 다음 줄 문을 병합 및 구문 분석 할 수없는 경우, JavaScript는 첫 번째 줄 이후에 세미콜론을 채우는데, 이는 일반적인 규칙이지만 두 가지 예외가 있습니다.
[1] 첫 번째 예외는 반환, 휴식, 계속, 던지기 진술과 관련된 시나리오입니다. 이 네 가지 키워드에 이어 라인이 나오면 JavaScript가 라인 브레이크에서 세미콜론을 채 웁니다.
반품
진실;
JavaScript는 다음과 같이 구문 분석합니다.
반환; 진실;
코드의 원래 의미는 다음과 같습니다.
진실을 반환하십시오.
[2] 두 번째 예외는 ++ 및 - 연산자가 관련 될 때, 접미사 표현식으로 사용되면 표현식과 동일한 선이어야한다는 것입니다. 그렇지 않으면, 라인의 끝이 세미콜론을 채우고 ++ 또는 - 다음 줄의 접두사 연산자로 사용되며이를 구문 분석합니다.
엑스
++
와이
JavaScript는 다음과 같이 구문 분석합니다.
x; ++ y;
코드의 원래 의미는 다음과 같습니다.
x ++; y;
세미콜론이 필요하지는 않지만 세미콜론을 추가하면 많은 오류를 피할 수 있고 코드 줄 끝에 세미콜론이 없으면 압축 오류가 발생할 수 있기 때문에 생략하지 않는 것이 가장 좋습니다. 세미콜론을 추가하면 일부 경우에도 코드의 성능이 향상됩니다. 파서는 더 이상 세미콜론을 삽입 할 곳을 추측하는 데 더 이상 시간을 소비하지 않아도됩니다.