Javascript는 변수 선언 시 자료형이 아닌
var, let, const, (미작성) 중 하나를 골라서 작성함
var : 변수, 변수명 중복O(덮어쓰기), 함수 레벨 scope
let : 변수, 변수명 중복 X, 블록{} 레벨 scope
const : 상수, 변수명 중복 X, 블록{} 레벨 scope
JS는 변수 선언 시 별도의 자료형을 지정하지 않음.
-> 변수에 대입되는 값(== 리터럴)에 의해서 자료형이 결정됨.
- string (문자열 / "abc", 'abc')
- number (숫자 / 100(정수), -3.14(실수))
- boolean (논리값 / true, false)
- object (객체 / 배열(Array), JS객체 {K:V, K:V})
- function (함수)
- undefined (자료형이 정의되지 않은 변수) -> 값이 대입되지 않는 변수
typeof 변수명 : 해당 변수의 자료형을 반환하는 연산자
배열 선언과 동시에 초기화
JS ([] 사용)
const arr = [10, 20, 30, 40, 50];
- K:V 쌍으로 이루어짐(Map 형식)
- Key는 무조건 String
- 리터럴 표기법 : {}
const user = { "K" : V , "K" : V };
const user = { "id" : "user01", "pw" : "pass01", "num" : 123, "a" : arr};
typeBox.innerHTML += "<br><br>user : " + user + " / " + typeof user;
console.log(user);
객체에 저장된 값 출력
typeBox.innerHTML += "<br>user.id" + user.id;
typeBox.innerHTML += "<br>user.pw" + user.pw;
typeBox.innerHTML += "<br>user.num" + user.num;
typeBox.innerHTML += "<br>user.a" + user.a;
typeBox.innerHTML += "<br>user.a[2]" + user.a[2];
const fnSum = function(n1, n2) { // 익명함수
return n1 + n2;
}
함수명만 작성하는 경우 => 함수에 작성된 코드 자체가 반환
typeBox.innerHTML += "<br><br>fnSum : " + fnSum + " / " + typeof fnSum;
// 함수명(매개변수) == 함수호출 (함수 코드가 수행됨)
typeBox.innerHTML += "<br><br>fnSum(1,2) : " + fnSum(1,2);
function plusFn(num, fn) {
// num : number
// fn : function
return num + fn();
}
const result = plusFn(100, function() {return 30 - 10;})
typeBox.innerHTML += "<br><br>result : " + result;
}