TIL- JavaScript와 다른 언어의 차이점

정경훈·2021년 12월 9일
0

다른 언어들과의 차이점

(1) class기반 vs prototype기반

자바스크립트는 동적인 언어이고, 프로토타입을 기반으로한 객체지향 언어이기 때문이다.

class 기반의 언어(C++)는 객체의 형식이 정의된 class라는 개념을 가지고 그것을 이용해 객체를 찍어낸다.

반면 프로토타입 기반 언어는 class의 개념이 없으며, 객체 prototype의 위임 과정을 통해 상속이 된다고 한다.

따라서, class 기반 언어는 class를 이용해 새로운 객체를 뽑아내고, 프로토타입 기반 언어는 객체끼리의 chaining을 통해 동적으로 표현된다. 그리고 이 객체의 내용을 동적으로 수정도 할 수 있다.

(2) 동기 vs 비동기

자바스크립트는 동기적인 특성을 가졌고 작성 순서대로 실행

일반적으로 C++언어를 작성했을 때, 코드는 동기적으로 실행이 된다고 한다.

하지만 자바스크립트 엔진은 단일 스레드이기 때문에 한번 동작할 때 하나의 함수만을 처리한다.

이를 이해하기 위해서 나는 "코어자바스크립트(위키북스)"의 2장 실행 컨텍스트에 대해 살펴보았고 이를 이해할 수 있었다. 아래 유튜브 동영상 링크를 참고해도 좋을 것 같다.

(코딩애플 - 개발자 90%가 모르는 자바스크립트 동작원리
https://www.youtube.com/watch?v=v67LloZ1ieI)

결국, 자바스크립트 엔진 동작원리(Stack, Queue, event loop) 의해서 코드가 순서대로 실행되지 않을 수도 있고, 비동기적 형태를 가지게 된다고 한다.

JavaScript 와 Java의 차이점

JavaScript

  • 웹 프로그래밍을 위한 객체지향 스크립트 언어
  • 실행환경 : 추가적인 환경 설정 필요 X(브라우저 동작에 따라감)
  • 변수 & 컴파일 : 변수 자료형을 미리 선언하지 않아도 브라우저가 자동으로 파악한다. 또한, 텍스트로 쓰인 코드로 실행될 수 있는 스크립트 언어이다.
  • 사용범위 : 다양한 웹 브라우저에서 이용되며, 자바스크립트가 실행되려면 HTML, CSS에 의존해야 한다

Java

  • 객체지향 프로그래밍 언어
  • 실행환경 : 추가적이 환경 설정 필요 O(JRE, JDK)
  • 변수 & 컴파일 : 변수 자료형이 반드시 선언되어야 하며, 프로그래밍 언어이기 때문에 컴퓨터가 이해할 수 있도록 컴파일되어야 한다.
  • 사용범위 : 거의 모든 환경에서 활용되며 다양한 운영체제에서 실행될 수 있는 독립적인 언어이다.

자료출처

코딩월드뉴스

http://www.codingworldnews.com/news/articleView.html?idxno=2554

블로그 EmptyZero님

https://sdcodebase.tistory.com/22

profile
발전하고 싶은 프론트엔드 개발자 입니다 :)

0개의 댓글