네로개발일기

개발자 네로의 개발 일기, 자바를 좋아합니다 !

반응형

자바스크립트의 기본 문법

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++;
}

 

 

...

 

728x90
반응형
blog image

Written by ner.o

개발자 네로의 개발 일기, 자바를 좋아합니다 !