--- title: console slug: Web/API/Console tags: - API - Interface - Reference - console - 콘솔 translation_of: Web/API/Console ---
console
객체는 브라우저의 디버깅 콘솔(Firefox 웹 콘솔 등)에 접근할 수 있는 메서드를 제공합니다. 동작 방식은 브라우저마다 다르지만, 사실상 표준으로 여겨지는 기능도 여럿 있습니다.
console
객체는 아무 전역 객체에서나 접근할 수 있습니다. 브라우징 문맥에선 {{domxref("Window")}}, 워커에서는 {{domxref("WorkerGlobalScope")}}이 속성으로 포함하고 있습니다. {{domxref("Window.console")}}의 형태로 노출되어 있으므로 간단하게 console
로 참조할 수 있습니다.
console.log("링크를 열 수 없습니다")
이 문서는 콘솔 객체에서 사용할 수 있는 {{anch("메서드")}}와 몇 가지 {{anch("예제")}}를 다룹니다.
{{AvailableInWorkers}}
참고: 실제 console
인터페이스는 역사적 이유로 인해 모두 소문자(즉 Console
이 아니고 console
)입니다.
false
인 경우 메시지와 {{anch("스택 추적")}}을 출력합니다."debug"
중요도로 메시지를 출력합니다.객체를 XML/HTML 요소 형태로 나타낼 수 있으면 그렇게 표시하고, 아닐 경우 JavaScript 객체 형태로 표시합니다.
error()
의 별칭입니다.groupEnd()
를 호출하세요.group()
과 달리, groupCollapsed()
로 생성한 그룹은 처음에 접혀 있습니다. 그룹을 나오려면 groupEnd()를 호출하세요.콘솔에서 가장 많이 사용하는 기능은 데이터와 텍스트를 출력하는 것입니다. 콘솔 메시지의 중요도는 네 가지로, 각각 {{domxref("console.log()")}}, {{domxref("console.info()")}}, {{domxref("console.warn()")}}, {{domxref("console.error()")}} 메서드를 사용해 출력할 수 있습니다. 중요도 별로 출력 스타일이 조금씩 다르며, 중요도 필터를 사용해 원하는 메시지만 골라 볼 수도 있습니다.
각각의 출력 메서드는 두 가지 방법으로 사용할 수 있습니다. 첫 번째는 단순히 객체 목록을 제공하는 것으로, 각자의 문자열 표현이 하나로 합쳐져서 출력됩니다. 두 번째는 치환 문자열을 포함한 문자열 뒤에, 그 자리에 배치할 객체 목록을 제공하는 것입니다.
로그를 남기는 가장 간단한 방법은 하나의 객체를 출력하는 것입니다.
var someObject = { str: "Some text", id: 5 }; console.log(someObject);
출력은 다음과 같습니다.
[09:27:13.475] ({str:"Some text", id:5})
여러 객체를 출력하는 방법은 메서드를 호출할 때 모두 나열하면 됩니다.
var car = "Dodge Charger"; var someObject = {str:"Some text", id:5}; console.info("My first car was a", car, ". The object is: ", someObject);
출력은 다음과 같습니다.
[09:28:22.711] My first car was a Dodge Charger. The object is: ({str:"Some text", id:5})
log()
처럼 문자열을 받는 콘솔 메서드에는 아래의 치환 문자열을 제공할 수 있습니다.
치환 문자열 | 설명 |
%o 또는 %O |
JavaScript 객체를 출력합니다. 객체 이름을 클릭하면 검사기에 더 자세한 정보를 보여줍니다. |
%d 또는 %i |
정수를 출력합니다. 서식도 지원합니다. 예를 들어 console.log("Foo %.2d", "1.1") 은 정수부를 0이 앞서는 두 자리로 표현하므로 Foo 01 을 출력합니다. |
%s |
문자열을 출력합니다. |
%f |
부동소수점 수를 출력합니다. 서식도 지원합니다. 예를 들어 console.log("Foo %.2f", "1.1") 은 소수부를 두 자리로 표현하므로 Foo 1.10 을 출력합니다. |
참고: Chrome은 숫자 서식을 지원하지 않습니다.
각각의 치환 문자열은 이후 매개변수에서 값을 가져옵니다. 예를 들어...
for (var i=0; i<5; i++) { console.log("Hello, %s. You've called me %d times.", "Bob", i+1); }
위의 출력은 다음과 같습니다.
[13:14:13.481] Hello, Bob. You've called me 1 times. [13:14:13.483] Hello, Bob. You've called me 2 times. [13:14:13.485] Hello, Bob. You've called me 3 times. [13:14:13.487] Hello, Bob. You've called me 4 times. [13:14:13.488] Hello, Bob. You've called me 5 times.
console
출력 꾸미기"%c"
명령을 사용해 콘솔 출력에 CSS 스타일을 적용할 수 있습니다.
console.log("This is %cMy stylish message", "color: yellow; font-style: italic; background-color: blue;padding: 2px");
%c
구문과 함께 사용할 수 있는 CSS 속성은 다음과 같습니다. (Firefox 기준, 브라우저마다 다를 수 있음)
text-*
속성.참고: 콘솔 메시지는 인라인 요소처럼 행동합니다. padding
, margin
등의 효과를 보려면 display: inline-block
등을 지정해야 합니다.
중첩 그룹을 사용하면 서로 관련된 출력 결과를 시각적으로 묶어 정돈할 수 있습니다. 새로운 중첩 블록을 생성하려면 console.group()
을 호출하세요. console.groupCollapsed()
메서드도 유사하지만, 대신 새로운 블록을 접힌 채로 생성하므로 내부를 보려면 열어야 합니다.
현재 그룹에서 나가려면 console.groupEnd()
를 호출하세요. 예를 들어...
console.log("This is the outer level"); console.group("First group"); console.log("In the first group"); console.group("Second group"); console.log("In the second group"); console.warn("Still in the second group"); console.groupEnd(); console.log("Back to the first group"); console.groupEnd(); console.debug("Back to the outer level");
위의 출력은 다음과 같습니다.
특정 작업의 소요시간을 측정할 땐 타이머를 사용할 수 있습니다. 타이머를 시작하려면 console.time()
메서드를 호출하세요. 유일한 매개변수로 타이머의 이름을 제공할 수 있습니다. 타이머를 멈추고, 시작한 후 지난 시간을 알아내려면 console.timeEnd()
메서드를 호출하세요. 역시, 유일한 매개변수로 이전에 사용한 타이머 이름을 제공하면 됩니다.
예를 들어...
console.time("answer time"); alert("Click to continue"); console.timeLog("answer time"); alert("Do a bunch of other stuff..."); console.timeEnd("answer time");
위의 코드는 사용자가 경고 상자를 닫는데 걸린 시간을 기록한 후 출력하고, 두 번째 경고를 닫을 때까지 기다린 후, 총 걸린 시간을 출력합니다.
시작할 때와 끝낼 때 모두 타이머의 이름이 표시됨을 알 수 있습니다.
콘솔 객체는 스택 추적도 지원합니다. 스택 추적은 {{domxref("console.trace()")}}를 호출하게 된 경로를 보입니다. 예를 들어...
function foo() { function bar() { console.trace(); } bar(); } foo();
위 코드의 출력 결과는 다음과 같습니다.
Specification | Status | Comment |
---|---|---|
{{SpecName('Console API')}} | {{Spec2('Console API')}} | Initial definition. |
{{Compat("api.Console")}}