자바스크립트는 웹 브라우저에서 동작하는 스크립트 언어이다. 초기에는 자바스크립트가 크게 주목받지 못했고, 단순히 HTML, CSS 기반의 웹에서 간단한 상호작용이나 효과를 담당하는 역할에 국한되어 있었다. 하지만 웹이 발전하면서 서버에서 담당하던 역할을 웹 브라우저가 담당하면서 자바스크립트의 역할은 크게 확대되었다.
현재 자바스크립트는 가장 많이 쓰이고 있는 언어 중에 하나이다. Github에서 프로젝트에 가장 많이 쓰이고 있는 언어도 자바스크립트이다. 자바스크립트는 발전하면서 활용 범위 또한 넓어졌다. 이전에는 단순히 Web개발에만 주로 쓰였었다면, 현재는 Node.js의 출현으로 서버 개발에도 활발히 이용되고 있다. 뿐만아니라 웹OS, 모바일어플리케이션 등 어플리케이션 개발에도 활용 될 수 있다. (React Native를 예로 들 수 있다.)
자바스크립트에서 객체는 매우 중요하다. 기본 데이터 타입인 Boolean, Number, String과 Null, Undefined 를 제외한 모든 것은 다 객체라고 볼 수 있고, 기본 데이터 타입도 객체처럼 다룰 수 있기 때문에 Null, Undefined외에 모든 것은 객체로 다룰 수 있기 때문이다.
위에서 말한 것 처럼 Null, Undefined 을 제외한 모든 것이 객체이기 때문에 함수 또한 객체이다. 하지만 객체중에서도 매우 중요한 역할을 담당하고 있는 객체라고 할 수 있다.
모든 객체는 프로토타입을 가진다. 프로토 타입을 활용하여 자료구조를 만들 수도 있고, 객체지향의 상속을 구현할 수도 있다.
자바스크립트를 제대로 활용하려면 실행 컨텍스트와 클로저를 정확히 이해해야 한다. 하지만 그것을 정확히 이해하기는 쉽지 않다.
자바스크립트는 느슨한 타입 체크 언어이다. 일반적으로 다른 언어에서는 변수를 선언할 때 변수에 저장할 데이터 타입을 명시하여 선언하는데, 자바스크립트에서는 변수를 선언할 때 var
라는 한 가지 키워드로만 선언한다. 그러므로 변수에 어떤 타입의 데이터를 저장하느냐에 따라 해당 변수의 데이터 타입이 결정된다.
값을 그대로 할당하는 타입
1) Number
자바스크립트에는 하나의 숫자형만 존재한다. 정수형이 따로 없고 모든 숫자를 실수로 처리하기 때문에 나눗셈을 할 때 주의해야 한다.
2) String
문자열의 경우, 한번 정의된 문자열은 변하지 않는다. 문자열은 인덱스를 이용해 접근하는게 가능하지만 그것을 변경한다고해도 변경되지 않는다. 한번 생성된 문자열은 읽기만 가능하고 수정을 불가능하다.
3) Boolean
4) null
개발자가 명시적으로 값이 비어있음을 나타내는데 사용한다. null 타입 변수인지 확인할 때, typeof 연산자를 사용하는 것이 아니고, 일치연산자(===)를 사용해서 변수의 값을 직접 확인해야 한다.
5) undefined
값이 할당되지 않은 변수의 타입이며, undefined 타입의 값 또한 undefined이다.
값이 저장된 주소 값을 할당하는 타입
자바스크립트에서 객체는 이름(Key):값(Value)
형태의 프로퍼티들을 저장하는 컨테이너이다. 기본 타입은 하나의 값만 가질 수 있지만 객체는 여러개의 프로퍼티를 포함할 수 있다. 객체는 기본 타입을 포함할 수도 있고, 다른 객체를 포함하는 것도 가능하다. 함수도 객체의 프로퍼티로 포함되는데 이를 메서드라고 한다.
Object
객체에 대한 더 자세한 내용은 다음 글에 이어서 포스트할 것이다.