>  기사  >  웹 프론트엔드  >  자바스크립트란 무엇입니까? 모든 것을 포괄하는 하나의 정의.

자바스크립트란 무엇입니까? 모든 것을 포괄하는 하나의 정의.

PHPz
PHPz원래의
2024-08-16 06:12:33572검색

What is JavaScript? One Definition to Cover It All.

인터뷰에서 이런 질문을 받을 수도 있고 안 할 수도 있지만 일단 이 글을 읽고 나면 JS 전문 용어를 훨씬 더 잘 이해할 수 있을 것입니다. (인터뷰시 브라우니 포인트 활용)

프런트엔드 인터뷰 질문 시리즈의 질문 #3입니다. 준비 수준을 높이고 전반적인 최신 정보를 얻으려면 프런트엔드 캠프의 대기자 명단에 등록해 보세요.


JavaScript는 객체 지향, 함수형 및 명령형 스타일을 포함한 다양한 패러다임을 지원하는 단일 스레드, 동적으로 유형이 지정되고 해석되는 프로그래밍 언어입니다. 프로토타입 기반 객체 지향 및 이벤트 중심 아키텍처가 특징입니다.

이것은 JavaScript의 괴상한 정의입니다. 그런데 각 용어는 무엇을 의미하나요? 알아봅시다.

단일 스레드

JavaScript는 단일 스레드 언어입니다. 즉, 하나의 기본 실행 스레드만 있습니다. 이는 또한 단일 호출 스택이 있음을 의미합니다. 함수 호출이 이루어지면 호출 스택의 맨 위에 추가됩니다. 실행이 완료되면 스택에서 제거되고 컨트롤은 호출 스택의 다음 함수로 이동합니다. 작업을 순차적으로 실행하는 것은 JavaScript 특성의 기본이지만 비동기 작업을 실행하기 위한 API를 제공합니다(fetch 및 setTimeout이 몇 가지 예입니다).

동적으로 유형이 지정됨

JavaScript에서는 변수가 유형으로 명시적으로 선언되지 않습니다. 유형은 런타임에 유추되므로 변수가 아닌 값과 연관됩니다. 유형은 프로그램 수명 주기 동안 변경될 수도 있습니다. 이 기능은 JS를 유연하게 만들어 주지만 유형 관련 오류가 발생할 수 있습니다. TypeScript와 같은 도구는 개발 중에 정적 유형을 추가하는 데 도움이 되지만 결국에는 JS로 컴파일됩니다.

해석된 프로그래밍 언어

Java 등의 컴파일 언어와 달리 JavaScript는 실행 전에 기계어로 컴파일되지 않습니다. 대신 코드는 런타임에 한 줄씩 읽고 해석되고 실행됩니다. 그러나 성능을 향상시키기 위해 최신 JavaScript 엔진은 코드 덩어리를 즉시 컴파일하는 JIT(Just-In-Time) 컴파일을 사용합니다. 이 접근 방식은 실행 속도를 향상시킵니다.

객체지향

이 프로그래밍 패러다임은 코드를 클래스나 프로토타입의 인스턴스인 객체로 구성합니다. 클래스 키워드는 구문 설탕을 위해 ES6에 도입되었습니다. 내부적으로 JavaScript의 클래스는 여전히 프로토타입을 사용합니다. 이러한 OOP 구현은 JavaScript에만 적용됩니다.

기능성

함수 사용을 강조하여 선언적 코드 작성을 장려하는 프로그래밍 패러다임입니다. 주요 개념 중 일부는 다음과 같습니다.

  1. 순수 함수: 주어진 입력에 대해 항상 동일한 출력을 생성하고 부작용이 없는 함수입니다.
  2. 고차 함수: 다른 함수를 인수로 사용하거나 결과로 반환할 수 있는 함수
  3. 불변성: 데이터를 불변으로 취급하지만 JavaScript는 기본적으로 이를 시행하지 않습니다.
  4. 일급 함수: 함수는 일급 시민으로 처리됩니다. 즉, 변수에 할당되거나 인수로 전달되거나 다른 함수에서 반환될 수 있습니다.
  5. 기능 구성: 단순한 기능을 결합하여 복잡한 기능을 구축합니다.

JavaScript는 다른 패러다임과 함께 이러한 함수형 프로그래밍 개념을 지원하므로 개발자는 적절한 경우 함수형 기술을 사용할 수 있습니다.

피할 수 없는

명령형 프로그래밍은 프로그램이 원하는 상태에 도달하기 위해 수행해야 하는 일련의 단계를 코드에서 명시적으로 설명하는 패러다임입니다. JavaScript는 명령형 코드 작성에 필요한 변수, 루프, 조건 및 연산자와 같은 모든 필수 구성을 완벽하게 지원합니다. 이 접근 방식을 사용하면 프로그램 실행 흐름을 정밀하게 제어할 수 있습니다. 알고리즘을 구현하고 복잡한 상태 변경을 관리하는 데 자주 사용됩니다.

프로토타입 기반 오리엔테이션

JavaScript는 객체가 주요 엔터티인 객체 지향 프로그래밍의 한 형태인 프로토타입 기반 객체 모델을 사용합니다. 클래스 기반 언어와 달리 JavaScript는 프로토타입을 사용하여 상속을 구현하고 객체 간에 속성과 메서드를 공유합니다.

JavaScript의 프로토타입 기반 방향의 주요 측면은 다음과 같습니다.

  1. 객체 생성: 클래스를 먼저 정의하지 않고도 객체를 직접 생성할 수 있습니다.

  2. 프로토타입 체인: 각 객체에는 프로토타입이라는 다른 객체에 대한 링크가 있습니다. 개체에서 속성이나 메서드를 찾을 수 없는 경우 JavaScript는 프로토타입에서 이를 찾은 다음 프로토타입의 프로토타입 등에서 찾습니다.

  3. 상속: 개체는 프로토타입 체인을 통해 다른 개체의 속성과 메서드를 상속받을 수 있습니다.

이 프로토타입 기반 시스템을 사용하면 강력하고 유연한 객체 지향 프로그래밍이 가능합니다.

이벤트 중심 아키텍처

JavaScript의 이벤트 기반 아키텍처는 프로그램의 흐름이 사용자 작업, 센서 출력 또는 다른 프로그램의 메시지와 같은 이벤트에 의해 결정되는 프로그래밍 접근 방식입니다. 이는 JavaScript가 웹 브라우저와 상호 작용하고 비동기 작업을 처리하는 방법의 기본입니다.

JavaScript 이벤트 기반 아키텍처의 주요 측면은 다음과 같습니다.

  1. 이벤트 리스너: 특정 이벤트를 "수신"하고 해당 이벤트가 발생할 때 실행하는 함수입니다.

  2. 이벤트 루프: 이벤트를 확인하고 청취자에게 전달하는 연속 프로세스입니다.

  3. 비동기 프로그래밍: 메인 스레드를 차단하지 않고 코드를 실행할 수 있으며 이는 반응형 웹 애플리케이션에 매우 중요합니다.

이 아키텍처를 사용하면 JavaScript가 사용자 상호 작용, API 호출, 타이머 및 기타 비동기 작업을 효율적으로 처리할 수 있으므로 대화형 웹 애플리케이션을 만드는 데 적합합니다.

이러한 모든 개념이 결합되어 JavaScript는 웹, 모바일, 서버, AR과 같은 다양한 플랫폼에서 사용할 수 있는 다목적 언어가 됩니다.


메모

인터뷰 시 다음 정의를 기억하세요.

JavaScript는 단일 스레드, 동적으로 유형이 지정되고 해석되어 컴파일되는 언어입니다. 크로스 플랫폼 언어이지만 페이지에 상호작용성을 추가하기 위해 주로 웹에서 사용됩니다.

자원

프런트엔드 캠프
Javascript가 단일 스레드 언어라는 것은 무엇을 의미합니까
해석된 프로그래밍 언어와 컴파일된 프로그래밍 언어

위 내용은 자바스크립트란 무엇입니까? 모든 것을 포괄하는 하나의 정의.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.