JavaScript 소개

이름에도 불구하고 JavaScript는 자바와만 관련이 있으며, Java와 자바의 Java가 서로 구문적 유사성 초기 개발 시 JavaScript의 구문은 Java의 구문에서 대략적으로 영감을 받아 "LiveScript"라고 했습니다. 실행할 때 1995년에 Netscape Navigator의 베타 버전으로 출시되었습니다. 이 두 가지 모두 일부 넷스케이프의 다른 제품 및 서비스를 소개하며 '실시간'으로 운영된다는 사실을 를 클릭합니다. 마이크로소프트는 자체적인 자바스크립트 구현을 출시했는데, 'JScript'를 사용합니다. Internet Explorer 3.0과 함께 사용할 수 있습니다.

Netscape는 이 초기 작업을 Ecma International은 기술 표준을 개발 및 게시하여 이 원칙이 적용되는 방식을 다른 브라우저에서 이해할 수 있어야 합니다. 1997년 Ecma는 International은 ECMA-262를 출시하여 스크립팅의 첫 번째 버전을 표준화했습니다. ECMAScript라는 언어를 사용합니다. ECMAScript는 보다 구체적인 스크립트 언어를 사용하는 것이 일반적입니다. 예를 들어 JScript, Adobe의 액션스크립트 및 JavaScript 자체를 지원합니다.

이러한 구분은 생성형 AI의 특정 측면과 기능을 논의할 때 있습니다. 'ES5' '버전이 지정된' '버전이 지정된' 새 버전을 출시한 이후 수년간의 부분적인 개발을 거쳐 2009년에 출시된 ECMAScript 표준입니다. 'ES6' 유럽의회 법무부서 제6차호에 의해 제정된 표준을 2015년에 출시된 ECMAScript를 사용합니다. ES6 이후 ECMAScript의 새 버전 는 매년 버전별로 출시되고 있으며, 'ES2016'에서 연도로 표시 또는 'ES2017'입니다.

기본 규칙

컴파일된 언어와 달리 JavaScript는 사람이 작성하는 코드에서 변환되지 않음 브라우저가 이해할 수 있는 형식으로 변환하기 때문입니다. 스크립트가 브라우저로 전송됨 마크업, 이미지, 스타일시트와 같은 자산과 함께 브라우저에서 문자와 동일한 방식으로 작성되었으며, 사람이 읽을 수 있는 유니코드 문자 시퀀스로 작성됩니다. 왼쪽에서 오른쪽으로, 위에서 아래로 파싱됩니다.

JavaScript 인터프리터는 스크립트를 수신하면 먼저 어휘 분석: 스크립트를 구성하는 긴 문자열을 파싱합니다. 다음과 같은 개별 입력 요소로 변환합니다.

  • 토큰
  • 제어 문자 서식 지정
  • 선 종결자
  • 댓글
  • 공백 (거의 항상 탭과 공백을 의미함).

스크립트를 다시 로드하거나 단, 페이지에 달리 명시하는 지침을 포함하지 않는 한 있습니다.

대략적으로 JavaScript 애플리케이션은 표현식.

진술

은 여러 줄의 코드로 구성된 명령문으로, 작업을 나타냅니다. 예를 들어 다음 문을 사용하여 myVariable라는 변수의 값을 반환합니다.

let myVariable = 4;

myVariable;
> 4

올바르게 해석되려면 문이 세미콜론으로 끝나야 합니다. 그러나 이러한 JavaScript를 작성할 때 항상 세미콜론이 필요한 것은 아닙니다. 이름은 자동 세미콜론 삽입을 사용하면 완전한 구문 뒤의 브레이크는 세미콜론을 사용하면 오류가 발생합니다.

ASI는 오류 수정이며 JavaScript 자체의 허용적인 측면이 아닙니다. 왜냐하면 이 오류 수정에 너무 많이 의존하면 모호성이 발생하여 세미콜론으로 끝나야 합니다.

블록 문

블록 문은 한 쌍에 여러 문과 선언을 그룹화합니다. 중괄호 ({})를 사용합니다. 이를 사용하면 JavaScript가 는 하나만 예상합니다.

블록 구문과 함께 가장 자주 볼 수 있는 것은 제어 흐름 문, 예를 들면 다음과 같습니다. if

if ( x === 2 ) {
  //some behavior;
}

표현식

표현식은 값을 생성하는 코드 단위이므로 사용됩니다. 2 + 2는 값 4:

2 + 2;
> 4

묶는 괄호 쌍인 '그룹화 연산자'는 표현식의 일부를 그룹화하여 표현식의 일부가 단일 단위로 평가됩니다 예를 들어 그룹화 연산자를 사용할 수 있습니다. 연산의 수학적 순서를 재정의하기 위해 코드의 가독성을 개선하는 방법은 다음과 같습니다.

2 + 2 * 4;
> 10

( 2 + 2 ) * 4;
> 16

let myVariable = ( 2 + 2 );

myVariable;
> 4

약한 입력

JavaScript는 약한 유형의 언어이므로 데이터 값에 명시적으로 특정 데이터 유형으로 표시해야 합니다. 강력한 유형이 지정된 언어와 달리 JavaScript는 값을 해당 유형으로 변환합니다. 이 프로세스를 유형 강제 변환을 지원합니다.

예를 들어 강타입(strongly typed) 언어의 문자열 값에 숫자를 추가하면 오류가 발생합니다.

>>> "1" + 1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects

JavaScript는 오류를 반환하는 대신 숫자 값을 문자열로 강제 변환합니다. 두 값을 연결합니다. 즉, 모든 값을 문자열에 추가합니다.

"1" + 1;
> "11"

데이터 유형을 명시적으로 강제 변환할 수도 있습니다. 다음 예는 JavaScript의 내장 기능을 사용하여 숫자 값 100"100"의 문자열 값으로 변환 toString 메서드:

let myVariable = 100;

typeof myVariable;
> "number"

myVariable = myVariable.toString();
> "100"

typeof myVariable;
> "string"

대소문자 구분

HTML 및 대부분의 CSS와 달리 JavaScript 자체는 대소문자를 완전히 구분합니다. 즉, 정의한 식별자에 언어에 내장된 속성 및 메서드를 확인할 수 있습니다

console.log( "Log this." );
> Log this.

console.Log( "Log this too." );
> Uncaught TypeError: console.Log is not a function
const myVariable = 2;

myvariable;
> Uncaught ReferenceError: myvariable is not defined

myVariable;
> 2

공백

JavaScript는 공백을 구분하지 않습니다. 즉, 인터프리터는 사용된 공백의 양과 유형 (탭 또는 공백)입니다.

                     console.log(       "Log this"  );console.log("Log this too");
> "Log this."
> "Log this too."

하지만 공백의 존재는 어휘 토큰:

let x;

[토큰: [let] [x] ]

letx;
> Uncaught ReferenceError: letx is not defined

[토큰: [letx] ]

의미 있는 어휘 토큰을 구분하는 데 공백이 사용되는 경우 파서는 공백의 양과 유형은 무시합니다.

let           x                             =                           2;

[토큰: [let] [x] [=] [2] ]

줄바꿈도 마찬가지입니다. 줄바꿈이 발생할 수 있는 경우가 있습니다. 명령을 너무 일찍 종료하여 문제를 일으킬 수 있음).

let x
=
2;

[토큰: [let] [x] [=] [2] ]

문체적으로 말하자면 일부 유형의 서술형이 한 줄을 차지하는 경우가 많습니다.

let x = 1;
let y = 2;

일부 문은 일반적으로 여러 줄을 사용합니다.

if ( x == 2 ) {
  //some behavior;
}

그러나 이러한 규칙은 가독성을 높이기 위한 것입니다. JavaScript 는 이전 예를 다음과 동일한 방식으로 해석합니다.

let x=1;let y=2;
if(x==2){}

이로 인해 불필요한 공백을 제거하는 자동화된 프로세스가 전송 크기를 줄이기 위한 스크립트 파일은 자바스크립트를 준비하는 일반적인 단계입니다. 다양한 최적화 옵션을 제공합니다.

JavaScript에서 공백 문자를 사용하는 것은 주로 작성자의 문제이며 설정할 수 있습니다. 여러 개발자가 있는 JavaScript 프로젝트 참여 코드는 특정 공백 규칙을 제안하거나 적용하여 코드 서식의 일관성 유지(예: 탭 또는 공백 사용) 중첩된 문 들여쓰기:

let myVariable = 10;

if ( typeof myVariable === "number" ) {
    console.log( "This variable is a number." );
    if( myVariable > 5 ) {
     console.log( "This variable is greater than five." );
    }
}

> "This variable is a number."
> "This variable is greater than five."

이해도 확인

표현식이란 무엇인가요?

문 및 선언 그룹
코드가 수행하는 작업을 설명하는 주석
값을 생성하는 코드 단위입니다.

JavaScript는 대소문자를 구분합니다.

거짓