JavaScript 기본문법

Sulhwa Choi·2022년 9월 17일
0

자바스크립트엔 여덟 가지 자료형이 있습니다.
이 중 일곱 개는 오직 하나의 데이터(문자열, 숫자 등)만 담을 수 있어 '원시형(primitive type)'이라 부릅니다.

✔️ 원시형(primitive type)

  • Boolean : 논리적인 요소, true와 false값이 있다.
  • null : 빈 값
  • undefined : 값을 할당하지 않은 변수가 가지는 값
  • Number : 숫자형으로 정수와 부동 소수점, 무한대 및 NaN(숫자가 아님)값을 포함한다.
  • String : 문자열
  • Symbol

✔️ 참조형 (Reference Type)

Reference 타입이라고도 하며, Object 클래스 뿐만 아니라, 배열과 함수, 사용자 정의 클래스, ES6에서는 Map, Set, WeakMap, WeakSet 등도 추가


- 차이점
기본형에는 바로 값을 그대로 할당한다는 것이고
참조형에는 값이 저장된 주소값을 할당(참조)한다는 것



1. 변수

변수란 메모리 주소(Memory address)에 접근하기 위해 사람이 이해할 수 있는 언어로 지정한 식별자(identifier)

  • 변수를 선언할 때 var 키워드를 사용한다. 할당 연산자 =는 변수에 값을 할당하기 위해 사용
  • 기본형식
    var 변수명

var 변수명 = 기본값

변수명 = 기본값

var example;  //변수 (example)의 선언
example : 1;  //example에 정수값 할당

2. 값

'값' 은 프로그램에 의해 조작될 수 있는 대상

  • 변수를 선언할 때 var 키워드를 사용한다. 할당 연산자 =는 변수에 값을 할당하기 위해 사용
var example = 'Hello';  //example변수에 문자열 리터럴 'Hello' 값으로 할당
  • 데이터 타입(Data Type) - 프로그래밍 언어에서 사용할 수 있는 값의 종류
  • 변수(Variable) - 값이 저장된 메모리 공간의 주소를 가리키는 식별자(identifier)
  • 리터럴(literal) - 소스코드 안에서 직접 만들어 낸 상수 값 자체를 말하며 값을 구성하는 최소 단위
// 숫자 리터럴
12.34
12345

// 문자열 리터럴
'Hi'
"Welcome"

// 불리언 리터럴
true
false

// null 리터럴
null

// undefined 리터럴
undefined

// 객체 리터럴
{ name: 'Tom', gender: 'male' }
{ name: 'Jerry', gender: 'female' }

// 배열 리터럴
[ 1, 2, 3 ]

// 정규표현식 리터럴
/ab+c/

// 함수 리터럴
function() {}

🫥 자바스크립트는 C나 Java외는 다르게 변수를 선언 시 데이터 타입을 미리 지정하지 않고, 변수에 할당된 값의 타입에 의해 동적으로 변수의 타입이 결정. 이를 동적 타이핑이라 하며 자바스크립트가 다른 프로그래밍 언어와 구별되는 특징 중 하나이다.

// 1byte 정수형: -128 ~ 127
char c;

// 4byte 정수형: -2,124,483,648 ~ 2,124,483,647
int num;

3. 연산자

// 산술 연산자
var area = 3 * 4; // 12

// 문자열 연결 연산자
var str = 'Nice to ' + 'meet you'; // "Nice to meet you"

// 할당 연산자
var animal = 'dog'; // "dog"

// 비교 연산자
var foo = 7 > 5; // true

// 논리 연산자
var bar = (5 > 3) && (2 < 4);  // true (and연산 둘다 충족해야 true)

// 타입 연산자
var type = typeof 'study'; // "string" 문자열로 이루어짐

// 인스턴스 생성 연산자
var today = new Date(); //날짜 생성

피연산자의 타입은 반드시 일치할 필요는 없다. 이때 자바스크립트는 암묵적 타입 강제 변환을 통해 연산을 수행한다.

암묵적 타입 변환이 발생하면 문자열, 숫자, 불리언과 같은 원시 타입 중 하나로 타입을 자동 변환한다.

var foo = 1 + '10'; // '110'  
/*예제의 + 연산자는 피연산자 중 하나 이상이 문자열이므로 문자열 연결 연산자로 동작, 문자열 연결 연산자의 역할은 문자열 값을 만든다*/

var bar = 1 * '10'; // 10

var ex = 3 * 'hi' //NaN
/*자바스크립트 엔진은 산술 연산자 표현식을 평가하기 위해 산술 연산자의 피연산자 중에서 숫자 타입이 아닌 피연산자를 숫자 타입으로 암묵적 타입 변환한다. 이때 피연산자를 숫자 타입으로 변환할 수 없는 경우는 산술 연산을 수행할 수 없으므로 NaN을 반환한다.*/

⭐️ 주석
// 는 한줄주석
/* */ 는 여러줄 주석

4. 키워드

자바스크립트에서 특정한 목적을 위해 사용하는 단어

  • var = 변수를 선언할 때 사용하는 키워드

5. 예약어

프로그램을 작성할 때, 변수명, 함수명 등 이름으로 사용할 수 없는 단어
이미 자바스크립트에서 쓰임이 정해져있는 키워드.

6. 문

  • 각각의 명령을 문(statement)이라 하며 문이 실행되면 무슨 일인가가 일어나게 된다.
  • 문은 리터럴, 연산자(Operator), 표현식(Expression), 키워드(Keyword) 등으로 구성되며 세미콜론( ; )으로 끝나야 한다.
// 함수
function example(x, y) {
  return x + y;
}

// if 문
if(x > 0) {
  // do something
}

// for 문
for (var i = 0; i < 10; i++) {
  // do something
}

7. 표현식

값(리터럴), 변수, 객체의 프로퍼티, 배열의 요소, 함수 호출, 메소드 호출, 피연산자와 연산자의 조합은 모두 표현식이며 하나의 값으로 평가(Evaluation)된다.

// 표현식
1             // 1
1 * 10        // 10
1 * 10 > 10   // false
(10 * 10 > 10) && (3 * 10 < 100)  // true

8. 함수

어떤 작업을 수행하기 위해 필요한 문(statement)들의 집합을 정의한 코드 블록이다. 함수는 이름과 매개변수를 갖으며 필요한 때에 호출하여 코드 블록에 담긴 문들을 일괄적으로 실행할 수 있다.

// 함수의 정의(함수 선언문)
function square(number) {
  return number * number;
}

// 함수의 호출
square(2); // 4
square(3); // 9
square(4); // 16

함수는 호출에 의해 실행되는데 한번만 호출할 수 있는 것이 아니라 여러번 호출할 수 있다.

profile
개발 공부 중 〰️ ٩(๑•̀o•́๑)و ✨

0개의 댓글