
버튼을 누르거나 정보를 입력하는 동적인 작업을 처리하기 위해 사용하는 프로그래밍 언어 중 하나입니다. 정식 명칭은 ECMAScript 입니다.
다른 프로그래밍 언어와 달리 스크립트 언어인 Javascript 는 프로그램이 실행되기 런타임에 코드가 해석됩니다.
(컴파일 언어) C, Java ➡️ 컴파일(소스 코드 해석) ➡️ 실행 가능한 형태로 변환
(스크립트 언어) Javascript ➡️ 런타임(소스 코드 해석)
자료형: 프로그래밍 언어에서 데이터를 다루기 위해 미리 정해놓은 데이터의 유형
모든 변수는 하나의 자료형을 가지게 됩니다. 일반적인 프로그래밍 언어에서는 변수를 선언하는 시점에 해당 변수의 자료형이 결정됩니다.
하지만 Javascript 에서는 변수를 선언할 때가 아닌 데이터가 대입되는 시점에 해당 변수의 자료형이 결정됩니다. 이처럼 동적으로 자료형이 결정되는 것을 다이나믹 타이핑, 동적 타이핑이라고 합니다.
variable. 변수를 선언할 때 사용합니다.
변수를 선언할 때 사용합니다.
let n1 = 1234;
let n2 = 1.234;
let s1 = "Hello";
let s2 = 'World';
let b1 = true;
let b2 = false;
let n = null;
let u1;
let u2 = undefined;
let arr = [1, 2, 3, 4];
일반적인 프로그래밍 언어와 달리 Javascript 에서는 배열의 다양한 자료형의 변수가 함께 들어갈 수 있습니다.
let arr1 = [1, 2, 3, 4];
let arr2 = ["h", "e", "l", "l", "o"];
let arr3 = [1, "h", 2, true, undefined, 3, null];
다른 객체 지향 프로그래밍 언어와 달리 Javascript 에서 객체는 키와 밸류로 이루어진 쌍의 집합을 말합니다. 다른 프로그래밍 언어의 딕셔너리, 맵, 해시맵과 유사한 자료형입니다.
객체에 들어가는 키는 문자열이여야 하고, 값은 어떤 자료형이든 다 들어갈 수 있습니다.
let obj1 = { a: "apple", b: "banana", c: "cookie"};
let obj2 = { a: 1, b: 2, c: 3};
let obj3 = { a: "hello", b: 100, c: [1, 2, 3] };
let obj4 = {
a: { a1: 1, b2: 2 },
b: { b1: 3, b2: 4 },
c: { c1: 5, c2: 6 },
};
console.log(obj1['a']);
// 출력 결과: apple
console.log(obj2.a);
// 출력 결과: 1
console.log(obj3['c']);
// 출력 결과: [1, 2, 3]
console.log(obj4.c.c2);
// 출력 결과: 6
중복해서 선언(+초기화)가 가능하다.
이 경우, 마지막에 할당된 값이 변수에 저장된다.
값의 재할당이 가능하다.
함수 레벨 스코프(function-level scope)
var는 함수 내부에 선언된 변수만 지역변수로 한정하며, 나머지는 모두 전역변수로 간주한다.
중복 선언이 불가능하다.
값의 재할당이 가능하다.
블록 레벨 스코프(block-level scope)
let, const는 함수 내부는 물론, if문이나 for문 등의 코드 블럭{ ... } 에서 선언된 변수도 지역변수로 취급한다. 당연히 함수 내부에서 선언된 변수도 외부에서 참조할 수 없다.
중복 선언이 불가능하다.
const는 값의 재할당이 불가능한 상수를 선언하는 키워드이다.
블록 레벨 스코프(block-level scope)
let, const는 함수 내부는 물론, if문이나 for문 등의 코드 블럭{ ... } 에서 선언된 변수도 지역변수로 취급한다. 당연히 함수 내부에서 선언된 변수도 외부에서 참조할 수 없다.