>  기사  >  웹 프론트엔드  >  자바스크립트 디버깅 지침_자바스크립트 기술

자바스크립트 디버깅 지침_자바스크립트 기술

WBOY
WBOY원래의
2016-05-16 18:25:34802검색

과거에는 IO에 대한 JavaScript의 지원이 매우 약하여 해당 텍스트 파일에 쓸 수 없었습니다. 또한 예외 개체 Error가 균일하지 않아 자세한 스택을 인쇄할 수 없었습니다. 예외 객체를 사용자 정의하는 것은 일반적으로 메시지 속성만 볼 수 있기 때문에 매우 불쾌한 방법입니다. 게다가 다른 사용자 정의 속성은 가장 느린 for...in 루프를 사용하여 탐색해야 합니다. 현재로서는 다른 방법이 없습니다. 예를 들어 Firefox에는 console.log가 있습니다. 다음은 콘솔 객체의 메소드 목록입니다. Firebug에 대한 자세한 사용 방법은 이 문서를 참조하세요.
기능 설명

로그(obj[, obj, ...]) 콘솔에 메시지를 출력합니다. 여러 매개변수를 입력할 수 있으며 출력은 공백으로 구분됩니다.
函数 说明
log(obj[, obj, ...]) 向控制台输出一个信息。可以输入多个参数,输出将已空格分隔各参数输出。
第一参数可以包含格式化文本,例如:
log(‘这里有%d个%s',count,apple);
字符串格式:
%s:字符串。
%d, %i:数字。
%f: 浮点数。
%o -超链接对象。
debug(obj[, obj, ...]) 向控制台输出一个信息,信息包含一个超链接链接到输出位置。
info(obj[, obj, ...]) 向控制台输出一个带信息图标和背景颜色的信息,信息包含一个超链接链接到输出位置。
warn(obj[, obj, ...]) 向控制台输出一个带警告图标和背景颜色的信息,信息包含一个超链接链接到输出位置。
error(obj[, obj, ...]) 向控制台输出一个带错误图标和背景颜色的信息,信息包含一个超链接链接到输出位置。
assert(expression[, obj, ...]) 测试一个表示是否为true,如果为false,提交一个例外信息到控制台。
dir(obj) 列出对象的所有属性。
dirxml(node) 列出HTML或XML Element的XML源树。
trace() 输出堆栈的调用入口。
group(obj[, obj, ...]) 将信息分组再输出到控制台。通过groupEnd()结束分组。
groupEnd() 结束分组输出。
time(name) 创建一个名称为name的计时器,计算代码的执行时间,调用timeEnd(name)停止计时器并输出执行时间。
timeEnd(name) 停止名称为name的计时器并输出执行时间。
profile([title]) 开始对脚本进行性能测试,title为测试标题。
profileEnd() 结束性能测试。
count([title]) 计算代码的执行次数。titile作为输出标题。
첫 번째 매개변수에는 서식이 지정된 텍스트가 포함될 수 있습니다. 예:
log('There are %d %s', count, apple)
문자열 형식: 디버그(obj[, obj, ...]) 출력 위치에 대한 하이퍼링크가 포함된 메시지를 콘솔에 출력합니다. 정보(obj[, obj, ...]) 메시지 아이콘과 배경색을 사용하여 메시지를 콘솔에 출력합니다. 메시지에는 출력 위치에 대한 하이퍼링크가 포함되어 있습니다. 경고(obj[, obj, ...]) 경고 아이콘과 배경색이 포함된 메시지를 콘솔에 출력합니다. 메시지에는 출력 위치에 대한 하이퍼링크가 포함되어 있습니다. 오류(obj[, obj, ...]) 오류 아이콘 및 배경색과 함께 메시지를 콘솔에 출력합니다. 메시지에는 출력 위치에 대한 하이퍼링크가 포함되어 있습니다. assert(표현식[, obj, ...]) 표현이 참인지 테스트하고 거짓인 경우 콘솔에 예외 메시지를 제출합니다. 디렉터리(obj) 객체의 모든 속성을 나열합니다. dirxml(노드) HTML 또는 XML 요소의 XML 소스 트리를 나열합니다. 추적() 출력 스택의 호출 항목입니다. 그룹(obj[, obj, ...]) 정보를 그룹화하여 콘솔에 출력합니다. groupEnd()를 통해 그룹을 종료합니다. 그룹끝() 그룹 출력을 종료합니다. 시간(이름) name이라는 타이머를 생성하고, 코드의 실행 시간을 계산하고, timeEnd(name)을 호출하여 타이머를 중지하고 실행 시간을 출력합니다. timeEnd(이름) name이라는 타이머를 중지하고 실행 시간을 출력합니다. 프로필([제목]) 스크립트 성능 테스트를 시작합니다. 제목은 테스트 제목입니다. 프로필끝() 성능 테스트를 종료합니다. 개수([제목]) 코드가 실행된 횟수를 셉니다. title을 출력 제목으로 사용합니다. IE8에도 console.log가 있지만 이는 F12를 누르고 디버깅 모드에 들어갈 때만 적용됩니다. 그렇지 않으면 오류가 보고됩니다. 오류를 보고하지 않으려면 일반적으로 빈 개체를 구현하여 덮어써야 합니다.


코드 복사


코드는 다음과 같습니다.


if (!window.console ){
window .console = {};
var 메소드 = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
"group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"],
noop = function(){}
for(var i = 0 , method=methods[i ];) window.console[method] = noop; } 아마 Opera9.5x 이후에는 추가 사항이 있을 것입니다. 드래곤플라이 이스트(Dragonfly East)라고 불린다. 물론, Firebug의 다양한 로그 출력과 비교할 수는 없습니다. 단지 Opera.postError 메소드만 제공합니다.


코드 복사

코드는 다음과 같습니다.
if (window.opera && Opera.postError ) { opera.postError(message); } Safari에는 Web Inspector 구성 요소를 기반으로 하고 Firefox와 비슷한 느낌을 주는 console.log도 있습니다. 과일 사람도 아니고 그것에 대해 모릅니다. Firebug만큼 방법이 많지 않습니다... 새로 시작되는 브라우저 크롬의 경우 이제 확장 프로그램에 Firebug가 설치된 크롬 버전을 검색할 수 있습니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.