var a = 1;
var b = 'hello';
var c = true;
console.log(a); // 하나만 로그
console.log(a, b, c); // 여러 개를 동시에 로그
console.log('%d는 숫자 %s는 문자열', a, b); // C 언어처럼 로그
console.log('기본');
console.info('정보');
console.warn('경고');
console.error('에러');
객체를 로깅 할때 참조를 로깅하기 때문에, 내용이 바뀔 수 있다.
var obj = {};
console.log(obj);
obj.a = 1;
console.log(obj);
객체를 로깅할 때는 객체의 내용 변경사항이 실시간으로 업데이트 된다!
이 문제를 겪지 않으려면 객체를 깊은 복사해서 로깅하거나, 객체가 아닌 값을 로깅한다. 객체를 깊은 복사하는 것은 비용이 많이 들고 로그를 위한 불필요한 객체를 만들어야 하기 때문에 객체가 아닌 값을 로깅하는 것이 좋다. 예를 들어 arr이 아닌 arr.length를 로깅 하듯
객체를 로깅 할때 좋다. prototype을 비롯한 모든 속성을 출력한다.
function f() { return true; }
console.log(f);
console.dir(f);
몇 번 호출 되었는지 로깅하고 싶을 때 사용한다.
console.count('카운터1'); // 카운터1: 1
console.count('카운터1'); // 카운터1: 2
console.count('카운터2'); // 카운터2: 1
console.count('카운터2'); // 카운터2: 2
console.count('카운터1'); // 카운터1: 3
코드의 수행 시간을 확인할 때 사용한다.
console.time('타이머');
for (var i = 0; i < 1000000; i++) z = 5;
console.timeEnd('타이머'); // 타이머: 6.76611328125ms
그밖의 메소드 확인