C언어와 JS는 문법적으로 비슷한 점이 정말 많습니다. 하지만 다른 점도 분명히 있어서 혼동하면 안 됩니다.
대표적인 C언어와 JS의 차이점을 정리하겠습니다.
파란색 - c언어
빨간색 - js
1. 변수 선언
int, char, double 등 자료형을 명시한다. " 정적 타입 언어"
var, let, const와 같은 키워드를 사용한다. 변수에 입력한 값에 따라 알아서 자료형을 결정해 준다. " 동적 타입 언어 "
변수를 사용하기 위해서는 먼저 선언을 해 주어야 한다.
변수가 선언되기 전에도 변수를 사용할 수 있다.
c언어에는 없는 객체라는 변수가 있다.
2. 메모리 관리
메모리 할당 및 해제를 직접 관리해야 한다. (ex. 포인터)
자동 메모리 관리를 제공하며 가비지 수집(garbage collection)을 수행한다.
garbage collection - 더이상 사용되지 않는 메모리를 자동으로 회수하는 메모리 관리 기술 (마크-앤크리어 알고리즘 사용)
3. 배열
고정된 길이를 가지며 선언과 동시에 길이가 정해진다. 원시 타입의 데이터를 연속적으로 저장한다.
배열의 길이가 동적으로 변경되며 다양한 데이터 타입의 원소를 포함할 수 있다. (한 배열 안에 number, string, boolean등 여러 타입이 공존 가능)
3. 함수 정의
반환 타입, 이름, 매개변수 목록을 명시한다.
function 키워드 사용을 사용하고 반환 타입을 지정하지 않다.
4. 객체 지향 프로그래밍
구조체를 사용하여 객체를 구현하고, 클래스와 상속(부모 & 자식) 개념이 없다.
프로토타입 기반의 객체 지향 프로그래밍을 지원하고, 최근 js에는 클래스 문법이 도입되었다.
5. 실행 환경
개발 환경에서 바로 실행되는 이진 파일(실행 파일)을 생성하여 사용한다.
주로 웹 브라우저에서 실행되어 HTML, CSS와 함께 클라이언트 측 스크립팅에 사용된다. (Node.js를 사용하여 서버 측에서도 실행 가능)
JavaScript 이벤트 핸들러 (1) | 2023.06.11 |
---|---|
자바스크립트 리터럴, 식별자, 키워드 JavaScript literal, identifier, keyword (0) | 2023.05.18 |
JavaScript 기초 (0) | 2023.03.25 |