1. 변수
변수(Variable)는 값(value)을 저장(할당)하고 그 저장된 값을 참조하기 위해 사용한다. 한 번 쓰고 버리는 값이 아닌 유지(캐싱)할 필요가 있는 값은 변수에 담아 사용한다. 또한 변수 이름을 통해 값의 의미를 명확히 할 수 있어 코드의 가독성이 좋아진다.
변수는 위치(주소)를 저장하는 저장소이다. 위치란 메모리상의 주소(address)를 의미한다. 즉, 변수란 메모리 주소(Memory address)에 접근하기 위해 사람이 이해할 수 있는 언어로 지정한 식별자(identifier)이다.
변수를 선언할 때 var, let, const 키워드를 사용할 수 있다.
var num;
let num;
const num;
2. 값
데이터 타입(Data Type) | 프로그래밍 언어에서 사용할 수 있는 값의 종류 |
변수(Variable) | 값이 저장된 메모리 공간의 주소를 가리키는 식별자(identifier) |
리터럴(literal) | 소스코드 안에서 직접 만들어 낸 상수 값 자체를 말하며 값을 구성하는 최소 단위 |
값은 프로그램에 의해 조작될 수 있는 대상이다.
자바스크립트의 모든 값은 데이터 타입을 갖는다.
- 원시 타입 (primitive data type)
number / string / boolean / null / undefined / sybol (new in ECMAScript 6)
- 객체 타입 (object data type)
object
자바스크립트는 변수를 선언할 때 데이터 타입을 미리 지정하지 않는다. 변수에 할당된 값의 타입에 의해 동적으로 변수의 타입이 결정된다. 이를 동적 타이핑이라 하며 자바스크립트가 다른 프로그래밍 언어와 구별되는 특징 중 하나이다.
(오.....그래서 느린가?)
3. 연산자
연산자(Operator)는 하나 이상의 표현식을 대상으로 산술, 할당, 비교, 논리, 타입 연산 등을 수행해 하나의 값을 만든다. 이때 연산의 대상을 피연산자(Operand)라 한다.
피연산자의 타입은 반드시 일치할 필요는 없다. 이때 자바스크립트는 암묵적인 타입 강제 변환을 통해 연산을 수행한다.
4. 키워드
키워드(keyword)는 수행할 동작을 규정한 것이다. 예를 들어 var 키워드는 새로운 변수를 생성할 것을 지시한다.
5. 주석 (Comment)
주석은 작성된 코드의 의미를 설명하기 위해 사용한다.
한줄 주석은 '//' 다음에 작성하며 여러 줄 주석은 '/*'과 '*/' 사이에 작성한다.
6. 문
각각의 명령을 문(statement)이라 하며 문이 실행되면 무슨 일인가가 일어나게 된다.
다른 언어와 달리 자바스크립트에서는 블록 유효범위(Block-level scope)를 생성하지 않는다. 함수 단위의 유효범위(Function-level scope)만이 생성된다.
7. 표현식
표현식은 하나의 값으로 평가된다.
표현식은 평가되어 값을 만들지만 그 이상의 행위는 할 수 없다. 문은 var, function 과 같은 선언 키워드를 사용하니 변수나 함수를 생성하기도 하고 if, for, while 문과 같은 제어문을 생성하여 프로그램의 흐름을 제어하기도 한다. 표현식을 통해 평가한 값을 통해 실제로 컴퓨터에게 명령을 하여 무언가를 하는 것은 문이다.
8. 함수
함수란 어떤 작업을 수행하기 위해 필요한 문(statement)들의 집합을 정의한 코드 블록이다. 함수는 이름과 매개변수를 갖으며 필요한 때에 호출하여 코드 블록에 담긴 문들을 일괄적으로 수행할 수 있다.
function square(number) {
return number * number;
}
9. 객체
자바스크립트는 객체(object) 기반의 스크립트 언어이며 자바스크립트를 이루고 있는 거의 모든것이 객체이다. 원시타입을 제외한 나머지 값들은 모두 객체이다.
자바스크립트 객체는 키(이름)와 값으로 구성된 프로퍼티의 집합이다. 프로퍼티의 값으로 자바스크립트에서 사용할 수 있는 모든 값을 사용할 수 있다. 자바스크립트의 함수는 일급 객체이므로 값으로 취급할 수 있다. 따라서 프로퍼티 값으로 함수를 사용할 수도 있으며 프로퍼티 값이 함수일 경우, 일반 함수와 구분하기 위해 메소드라 부른다.
var person = {
name: 'Lee',
gender: 'male',
sayHello: function () {
console.log('Hi! My name is ' + this.name);
}
};
console.log(typeof person); // object
console.log(person); // { name: 'Lee', gender: 'male', sayHello: [Function: sayHello] }
person.sayHello(); // Hi! My name is Lee
자바스크립트의 객체는 객체지향의 상속을 구현하기 위해 프로토타입 이라고 불리는 객체의 프로퍼티와 메소드를 상속받을 수 있다. 이 프로토타입은 타 언어와 구별되는 중요한 개념이다.
11. 배열
var arr = [1, 2, 3, 4, 5];
console.log(arr[1]); // 2
'웹 > JavaScript' 카테고리의 다른 글
제어문 (0) | 2021.07.28 |
---|---|
데이터 타입 (0) | 2021.07.27 |
브라우저 동작 원리 (0) | 2021.07.27 |
3. JS시작을 위한 준비 (0) | 2021.07.22 |
2. 자바스크립트? (0) | 2021.07.22 |