데이터 타입에 들어가기 전에 Javascript 역시 특정 변수를 사용하기전에 선언단계가 있어야한다. 다만 Java와의 차이점은 사전에 그 데이터타입을 알필요없다는 것이다. 다만 이게 평생몰라도 된단 뜻은 아니다. 데이터의 형태에따라 사용해야하는 메소드 등의 차이가 있으므로 유의해야한다.
선언을 할때는 크게 var, let, const와 같은 생성자가 있다. 이는 변수의 타입과관계 없이 사용하는 것인데, 각각 특성이 명확하다. 우리는 이 과정에서 var사용을 지양하기로 하였다.
그 이유는 Javascript를 포함한 프로젝트는 대체로 협업이 중요한데,이에 적합하지않기때문이다.
var
-글로벌 변수와 로컬변수의 경계가 모호
-중복 선언해도 대체될뿐 오류가 발생하지 않음 > 즉 다른사람이 선언해둔 변수를 사용해 삭제시킬 수 있다는 말
이러한 특성이 그 적합성에 위배된다고 할 수 있다.
그중 let과 const의 경우 변수와 상수의 차이라고 할 수 있다. const는 마치 java에서의 final과 비슷한 의미라고 보면 된다.
const는 값을 변경하는것이 원칙적으로 불가능하지만, 배열에서 각각의 값을 꺼내어 바꾸는것은 가능하다.
const ary = [1, 2, 3, 4]; ary = [10,11,12,13]; // 불가능 ary[0] = 100; // 가능
그래서 앞으로는 let을 가장 많이 사용하기로 했다.
let str = "Kim's Bakery";
console.log(typeof str);
let n1 = 12;
console.log(typeof n1);
let bool = 10<12;
console.log(bool + ": " + typeof bool);
console.log(true + true);
function test(data) {
console.log("전달된 값 :" + data);
}
let test2 = test; // 함수 자체를 대입
let test3 = test(); // 함수의 반환값을 변수 대입
일반적으로 같은 타입의 값을 가지지만, 다른타입끼리도 넣을 수 있다. 그러나 함수를 값으로 취할 수는 없다.
let ary = [1, 2, 3, 4];
console.log(typeof ary);
console.log(ary)
let obj2 = { "name": 'honggildong', "age": '25' };
console.log(typeof obj2);
console.log(obj2);
console창에 띄워 개발자만 확인하는 방법
시간차 출력 방법이다.
전달인자로는 출력하고자하는 함수와 밀리세컨 단위의 시간이다.
다음 코드는 1초 후에 timer함수를 출력하는 것이다.
setTimeout(timer, 1000);
여러번 출력하는 방법이다.
전달인자로는 출력하고자하는 함수와 밀리세컨 단위의 시간이다. 여러번 출력하는 방법이다.
다음 코드는 1초 마다 timer함수를 출력하는 것이다.
setInterval(timer, 1000);