[Javascript] 자바스크립트의 기본 문법
자바스크립트의 기본 문법
1. 변수
변수(Variable)는 값(value)를 저장(할당)하고 그 저장된 값을 참조하기 위해 사용한다. 한번 쓰고 버리는 값이 아닌 유지(캐싱)할 필요가 있는 값은 변수에 담아 사용한다. 또한 변수 이름을 통해 값의 의미를 명확히 할 수 있어 코드의 가독성이 좋아진다.
변수는 위치(주소)를 기억하는 저장소이다. 위치란 메모리 상의 주소(address)를 의미한다. 즉, 변수란 메모리 주소(Memory address)에 접근하기 위해 사람이 이해할 수 있는 언어로 지정한 식별자(identifier)이다.
변수를 선언할 때 var 키워드를 사용한다. 할당 연산자 = 는 변수에 값을 할당하기 위해 사용된다.
var x; // 변수의 선언
x = 10; // 정수값의 할당
2. 값
var str = 'Hello world';
위 문자열 리터럴 'Hello world'는 문자열 타입의 값이다.
// 숫자 리터럴
10.50
1024
// 문자열 리터럴
'Hello'
"World"
// 불린 리터럴
true
false
// null 리터럴
null
// undefined 리터럴
undefined
// 객체 리터럴
{ name: 'Jeon', gender: 'female' }
// 배열 리터럴
[ 1, 2, 3 ]
// 정규식 리터럴
/ab+c/
// 함수 리터럴
function() {}
숫자, 문자열, 불린과 같은 원시 타입의 리터럴은 다양한 연산자의 피연산자가 되어 하나의 값으로 평가될 수 있다. 이렇게 리터럴은 연산에 의해 하나의 값이 될 수 있다.
// 산술 연산
1024 * 2 + 512
자바스크립트의 모든 값은 데이터 타입을 갖는다. 자바스크립트는 7가지 데이터 타입을 제공한다.
# 원시 타입 (primitive type)
- number
- string
- boolean
- null
- undefined
- symbol (ES6)
# 객체 타입 (Object data type)
- object
자바스크립트는 다른 언어와 다르게 변수를 선언할 때 데이터 타입을 미리 지정하지 않는다. 다시 말해, 변수에 할당된 값의 타입에 의해 동적으로 변수 타입이 결정된다. 이를 동적 타이핑이라 하며 자바스크립트가 다른 프로그래밍 언어와 구별되는 특징 중 하나이다.
3. 연산자
연산자(Operator)는 하나 이상의 표현식을 대상으로 산술, 할당, 비교, 논리, 타입 연산 등을 수행해 하나의 값을 만든다. 이때 연산의 대상을 피연산자(Operand)라 한다.
// 산술 연산자
var area = 5 * 4 + 3; // 23
// 문자열 연결 연산자
var str = 'My name is ' + 'Jeon'; // "My name is Jeon"
// 할당 연산자
var color = 'red'; // "red"
// 비교 연산자
var foo = 3 > 5; // false
// 논리 연산자
var bar = (5 > 3) && (2 < 4); // true
// 타입 연산자
var type = typeof 'Hi'; // "string"
// 인스턴스 생성 연산자
var today = new Date(); // Sat Dec 01 2018 00:57:19 GMT+0900 (한국 표준시)
피연산자의 타입은 반드시 일치할 필요는 없다. 이때 자바스크립트는 암묵적 타입 강제 변환을 통해 연산을 수행한다.
var foo = 1 + '10'; // '110'
var bar = 1 * '10'; // 10
4. 키워드
키워드는 수행할 동작을 규정한 것이다. 예를 들어 var 키워드는 새로운 변수를 생성할 것을 지시한다.
// 변수의 선언
var x = 3 + 9;
// 함수의 선언
function foo (arg) {
// 함수 종료 및 값의 반환
return ++arg;
}
var i = 0;
// 반복문
while (1) {
if (i > 5) {
break;
}
console.log(i);
i++;
}
...
'programming language > Javascript' 카테고리의 다른 글
[Javascript] 새로고침 (reload) (0) | 2022.06.17 |
---|---|
[Javascript] Document.referrer 이전페이지의 URL 가져오기 (0) | 2022.05.30 |
[yarn] Yarn이란? 의존성 관리 / 패키지 매니저 (1) | 2021.11.16 |
[Javascript] 데이터 타입과 변수 (2) (0) | 2021.11.15 |
[Javascript] 데이터 타입과 변수 (1) (0) | 2021.11.08 |
댓글 개