JavaScript/Console
console
ãªããžã§ã¯ãã¯ãJavaScriptã«ãããŠãŠã§ããã©ãŠã¶ã®ã³ã³ãœãŒã«æ©èœãžã®ã€ã³ã¿ãŒãã§ãŒã¹ãæäŸããŸããäž»ã«éçºè
ãã³ãŒãã®ãããã°ããã°ã®è¡šç€ºãªã©ãè¡ãããã«å©çšãããŸãã以äžã«ãconsole
ãªããžã§ã¯ãã®æŠèŠãšäžéšã®ã¡ãœããã«ã€ããŠèª¬æããŸãã
æŠèŠ
[ç·šé]Console APIã¯ãJavaScriptã®ã³ãŒãå®è¡äžã«ã³ã³ãœãŒã«ã«ã¡ãã»ãŒãžã衚瀺ãããããããã°æ å ±ãåéããããã®APIã»ããã§ããäž»ã«éçºè ãã³ãŒãã®ãããã°ãã¢ãã¿ãªã³ã°ãããã©ãŒãã³ã¹ã®è©äŸ¡ãªã©ã«äœ¿çšãããŸãããã®APIã¯Webãã©ãŠã¶ãNode.jsãªã©ã®ç°å¢ã§å©çšã§ããŸãã
äž»ãªconsole
ãªããžã§ã¯ãã®ã¡ãœããã«ã¯ä»¥äžã®ãããªãã®ããããŸãïŒ
log(message)
: ã¡ãã»ãŒãžãã³ã³ãœãŒã«ã«è¡šç€ºããŸããerror(message)
: ãšã©ãŒã¡ãã»ãŒãžãã³ã³ãœãŒã«ã«è¡šç€ºããŸããwarn(message)
: èŠåã¡ãã»ãŒãžãã³ã³ãœãŒã«ã«è¡šç€ºããŸããinfo(message)
: ã€ã³ãã©ã¡ãŒã·ã§ã³ã¡ãã»ãŒãžãã³ã³ãœãŒã«ã«è¡šç€ºããŸããdebug(message)
: ãããã°ã¡ãã»ãŒãžãã³ã³ãœãŒã«ã«è¡šç€ºããŸãã
ãããã®ã¡ãœããã䜿çšããããšã§ãéçºè ã¯å®è¡äžã®ã³ãŒãã®ç¶æ ã倿°ã®å€ããšã©ãŒã®çºçç®æãªã©ãã³ã³ãœãŒã«äžã§ç¢ºèªã§ããŸãããŸããèšæž¬ããããã¡ã€ãªã³ã°ã®ããã®ã¡ãœãããæäŸãããŠããŸããConsole APIã¯ãéçºè ãã¢ããªã±ãŒã·ã§ã³ã®å質ãåäžãããããã«éèŠãªããŒã«ãšãªã£ãŠããŸãã
Console APIã®çå®
[ç·šé]Console APIã®çå®ã¯ãWHATWGïŒWeb Hypertext Application Technology Working GroupïŒã«ãã£ãŠè¡ãããŸãããWHATWGã¯ããŠã§ãæè¡ã®çºå±ãšæšæºåãç®æãããã®ã°ã«ãŒãã§ãããWebæšæºã®é²åã«é¢äžããŠããŸããConsole APIã¯ãéçºè ãã³ã³ãœãŒã«ã«ãã°ãåºåãããããã°æ å ±ãååŸããããã®APIãšããŠãWHATWGãçå®ãã仿§ã§ããããããLiving StandardãšããŠæäŸãããŠããŸãã
è©³çŽ°ãªæ å ±ãææ°ã®ä»æ§ã«ã€ããŠã¯ãConsole Living Standardã®ããã¥ã¡ã³ããWHATWGã®ãŠã§ããµã€ãããåç §ããããšãã§ããŸãã
Console APIã®æŽå²
[ç·šé]Console APIã®æŽå²ã¯ãWebéçºã®åæããããã®ãŒããŸããJavaScriptã®åæã®ããŒãžã§ã³ã§ã¯ããããã°ããã°åºåã«é¢ããçµ±äžçãªææ®µãæäŸãããŠããŸããã§ãããåãã©ãŠã¶ã¯ç¬èªã®æ¹æ³ã§ãããã°æ å ±ã衚瀺ããŠããŸããã
以äžã«ãConsole APIã®æŽå²ã®äž»ãªãã€ã«ã¹ããŒã³ãããã€ãæããŠã¿ãŸãããïŒ
- åæã®ãã©ãŠã¶éçºè
ããŒã« (2000幎代åé ): åæã®Webãã©ãŠã¶ã¯ããããã°ããã°åºåã«é¢ããŠæšæºçãªAPIãæäŸããŠããŸããã§ãããéçºè
ã¯
alert
ãªã©ã®ææ®µãçšããŠãããã°æ å ±ã衚瀺ããŠããŸããã - Firebug (2006幎): Mozilla Firefoxã®æ¡åŒµæ©èœãšããŠç»å ŽããFirebugã¯ãéçºè ã«ãšã£ãŠç»æçãªãããã°ããŒã«ã§ãããããã«ãããã³ã³ãœãŒã«ãžã®ãã°åºåãã¹ã¯ãªããã®ãããã°ã容æã«ãªããŸããã
- Webéçºè ããŒã«ã®çµ±å (2010幎代): çŸä»£ã®Webãã©ãŠã¶ã¯ãéçºè ããŒã«ãçµ±åããConsoleããã«ãæäŸããŠããŸããGoogle ChromeãMozilla FirefoxãMicrosoft Edgeãªã©ã®äž»èŠãªãã©ãŠã¶ã¯ãå ±éã®Console APIãæäŸãå§ããŸããã
- Console APIã®æšæºå (WHATWG): Console APIã¯WHATWGïŒWeb Hypertext Application Technology Working GroupïŒã«ãã£ãŠæšæºåãããConsole Living StandardãšããŠå ¬éãããŸãããããã«ãããéçºè ã¯ç°ãªããã©ãŠã¶éã§äžè²«ããæ¹æ³ã§ãããã°æ å ±ãååŸã§ããããã«ãªããŸããã
- çŸä»£ (2020幎代以é): Console APIã¯ãWebéçºã«ãããŠäžå¯æ¬ ãªããŒã«ãšããŠäœçœ®ã¥ããããŠãããæ°ãããã©ãŠã¶ãéçºããŒã«ã§ããµããŒãããç¶ããŠããŸããæ°ããªæ©èœãæ¹åãè¡ãããéçºè ãã¢ããªã±ãŒã·ã§ã³ã®ãããã°ãã¢ãã¿ãªã³ã°ã广çã«è¡ããããã«ãªã£ãŠããŸãã
ãã®ããã«ããŠãConsole APIã¯Webéçºè ã«ãšã£ãŠéèŠãªãããã°ããŒã«ãšããŠé²åããŠããŸããã
éçããããã£
[ç·šé]console.memory
- ã³ã³ãœãŒã«ã®ã¡ã¢ãªé¢é£ã®æ å ±ïŒConsole Living Standardã§ã¯ç¢ºèªã§ããªãïŒ
console.memory
ã¯JavaScriptã®ã³ã¢ãªã³ã³ãœãŒã«API仿§ã«ã¯å«ãŸããŠãããããã©ãŠã¶ã®å®è£
ãéçºè
ããŒã«ã«ãã£ãŠç°ãªãçµæãè¿ãããå¯èœæ§ããããŸããããã¯éæšæºã®æ¡åŒµæ©èœã§ããããã©ãŠã¶ã«ãã£ãŠã¯ãµããŒããããŠããªãããšããããŸãã
äžè¬çã«ãæšæºã®console
ã¡ãœãã以å€ã®ããããã£ãã¡ãœããã«äŸåããããšã¯é¿ããã³ãŒããç°ãªãç°å¢ã§äºæž¬å¯èœãªåäœãããããã«å¿ãããããšãéèŠã§ãã
Console APIã®æ©èœ
[ç·šé]console
ããŒã ã¹ããŒã¹
[ç·šé]console
ããŒã ã¹ããŒã¹ã¯ããã°åºåããããã°é¢é£ã®æ©èœãæäŸããŸããconsole
ããŒã ã¹ããŒã¹ã«ã¯ããã°åºå颿°ãèšæž¬é¢æ°ãã°ã«ãŒãå颿°ãã¿ã€ãã³ã°é¢æ°ãªã©ãå«ãŸããŸãã
ãã®ã³ã°é¢æ°
[ç·šé]assert(condition, ...data)
: æ¡ä»¶ãtrue
ã§ãªãå Žåãã¡ãã»ãŒãžã衚瀺ããŸããclear()
: ã³ã³ãœãŒã«ãã¯ãªã¢ããŸããdebug(...data)
,error(...data)
,info(...data)
,log(...data)
: 察å¿ãããã°ã¬ãã«ã§ã¡ãã»ãŒãžã衚瀺ããŸããtable(tabularData, properties)
: ããŒãã«åœ¢åŒã§ããŒã¿ã衚瀺ããŸããtrace(...data)
: ã³ãŒã«ã¹ã¿ãã¯ã®ãã¬ãŒã¹ã衚瀺ããŸããwarn(...data)
: èŠåã¡ãã»ãŒãžã衚瀺ããŸããdir(item, options)
: ãžã§ããªãã¯ãªJavaScriptãªããžã§ã¯ãã®ãã©ãŒãããã衚瀺ããŸããdirxml(...data)
: XMLããŒã¿ã®è¡šç€ºãè¡ããŸãã
ã«ãŠã³ãã£ã³ã°é¢æ°
[ç·šé]count(label)
: ã©ãã«ããšã«ã«ãŠã³ãããçµæã衚瀺ããŸããcountReset(label)
: ç¹å®ã®ã©ãã«ã®ã«ãŠã³ãããªã»ããããŸãã
ã°ã«ãŒãå颿°
[ç·šé]group(...data)
,groupCollapsed(...data)
: ã°ã«ãŒããäœæããå 容ã衚瀺ããŸããgroupCollapsed
ã¯åãããæããããŸããç¶æ ã§è¡šç€ºãããŸããgroupEnd()
: æåŸã®ã°ã«ãŒããçµäºããŸãã
ã¿ã€ãã³ã°é¢æ°
[ç·šé]time(label)
,timeLog(label, ...data)
,timeEnd(label)
: å®è¡æéã®èšæž¬ãè¡ããŸãã
ãµããŒãããæœè±¡æäœ
[ç·šé]Logger(logLevel, args)
: ãã°ã®è¡šç€ºãè¡ããŸãããã©ãŒãããæå®åãå«ãŸããŠããå ŽåããããåŠçããŸããFormatter(args)
: åŒæ°ããã©ãŒãããããŠè¡šç€ºçšã«æŽåœ¢ããŸããPrinter(logLevel, args[, options])
: ãã°ã®è¡šç€ºãå®éã«è¡ãå®è£ äŸåã®æäœã§ããreport a warning to the console
: èŠåã¡ãã»ãŒãžãã³ã³ãœãŒã«ã«è¡šç€ºããŸãã
Console APIã®ãŠãŒã¹ã±ãŒã¹
[ç·šé]Console APIã¯ãJavaScriptã®éçºããããã°ã«ãããŠããŸããŸãªãŠãŒã¹ã±ãŒã¹ã§å©çšãããŸãã以äžã«ãConsole APIã®äž»ãªãŠãŒã¹ã±ãŒã¹ãããã€ãæããŠã¿ãŸãã
- ãããã°æ
å ±ã®è¡šç€º: éçºè
ã¯
console.log()
ãconsole.debug()
ã¡ãœããã䜿çšããŠãã³ãŒãã®å®è¡äžã«å€æ°ã®å€ããªããžã§ã¯ãã®ããããã£ãã¡ãœããã®åŒã³åºããå¶åŸ¡ãããŒã®é²æãªã©ãã³ã³ãœãŒã«ã«è¡šç€ºããã³ãŒãã®æåã確èªã§ããŸããlet variable = "Hello, Console!"; console.log(variable);
- ãšã©ãŒãšèŠåã®è¡šç€º:
console.error()
ãconsole.warn()
ã¡ãœããã䜿çšããŠããšã©ãŒãèŠåã¡ãã»ãŒãžã衚瀺ããããã°ã©ã ã®åé¡ãè¿ éã«ç¹å®ã§ããŸããfunction divide(a, b) { if (a === 0 && b === 0) { console.error("Domain Error."); return; } if (b === 0) { console.error("Division by zero is not allowed."); return; } return a / b; }
- æ¡ä»¶ã®æ€èšŒ:
console.assert()
ã¡ãœããã䜿çšããŠæ¡ä»¶ãæ€èšŒããæ¡ä»¶ãfalsy
ã®å Žåã«ã¡ãã»ãŒãžã衚瀺ããŸããconsole.assert(x > 0, "x should be greater than 0");
- èšæž¬ãšãããã¡ã€ãªã³ã°:
console.time()
ãšconsole.timeEnd()
ã¡ãœããã䜿çšããŠãã³ãŒãã®å®è¡æéãèšæž¬ããããã©ãŒãã³ã¹ã®æ¹åãè¡ããŸãããŸããconsole.profile()
ãšconsole.profileEnd()
ã¡ãœããã䜿çšããŠã颿°ã®åŒã³åºãå±¥æŽãåéããããã¡ã€ãªã³ã°ãè¡ããŸããconsole.time("myTimer"); // äœãã®åŠç console.timeEnd("myTimer");
- ã°ã«ãŒãå:
console.group()
ãconsole.groupCollapsed()
ãconsole.groupEnd()
ã¡ãœããã䜿çšããŠãé¢é£ãããã°ã¡ãã»ãŒãžãã°ã«ãŒãåããã³ã³ãœãŒã«ãæŽçããŸããconsole.group("Group 1"); console.log("Message 1"); console.log("Message 2"); console.groupEnd();
ãããã®ãŠãŒã¹ã±ãŒã¹ã¯ãConsole APIãæäŸããã¡ãœãããæŽ»çšããŠéçºè ãã³ãŒãã®æåãçè§£ãããããã°ãããã©ãŒãã³ã¹ã®æé©åãè¡ãã®ã«åœ¹ç«ã¡ãŸãã
Console APIã®ãã¹ããã©ã¯ãã£ã¹
[ç·šé]Console APIã®äœ¿çšã«ãããŠãã¹ããã©ã¯ãã£ã¹ã¯ä»¥äžã®ç¹ã«æ³šæããããšããããŸãã
- ãããã°çšéã«éå®ãã: Console APIã¯å°ããããã°ç®çã§äœ¿çšãããã¹ãã§ãããããã¯ã·ã§ã³ã³ãŒãã«ãããŠãã³ã³ãœãŒã«ãã°ãéå°ã«æ®ã£ãŠãããšããã©ãŒãã³ã¹ãã»ãã¥ãªãã£ã®åé¡ãåŒãèµ·ããå¯èœæ§ããããŸãã
- æ å ±ã®é èœ: ã»ã³ã·ãã£ããªæ å ±ãå人æ å ±ã¯ã³ã³ãœãŒã«ã«åºåããªãããã«ããŸããããããã«ã¯ãAPIããŒããã¹ã¯ãŒãããŠãŒã¶ãŒããŒã¿ãªã©ãå«ãŸããŸãã
- ã³ãŒãã«æ®ãããã°ã®é€å»: ãããã¯ã·ã§ã³ã³ãŒãã«ãããŠãããã°çšã®ã³ã³ãœãŒã«ãã°ãæ®ã£ãŠãããšãæªæã®ãããŠãŒã¶ãŒãæ å ±ãå©çšããå¯èœæ§ããããããäžèŠãªãã°ã¯åé€ããããé©åãªåœ¢ã§å¶åŸ¡ããããšãéèŠã§ãã
- ã³ã³ãœãŒã«ãã°ã®é©åãªå©çš:
console.log
ã ãã§ãªããconsole.debug
ãconsole.info
ãconsole.warn
ãconsole.error
ãªã©ãé©åãªãã°ã¬ãã«ã䜿çšããããšã§ãæ å ±ã®éèŠåºŠã瀺ããŸããconsole.assert
ã䜿çšããŠã¢ãµãŒã·ã§ã³ãæ¿å ¥ããæ¡ä»¶ãæºããããŠãããã©ããã確èªã§ããŸãã
- ã³ã³ãœãŒã«ã°ã«ãŒãã³ã°: è€éãªæäœãé¢é£ãããã°ãã°ã«ãŒãåããããšã§ããã°ã®æŽçããããããªããŸãã
console.group
ãconsole.groupCollapsed
ãconsole.groupEnd
ã䜿çšããŠã³ã³ãœãŒã«ã°ã«ãŒããäœæããŸãããã - èšæž¬æ©èœã®æŽ»çš:
console.time
ãconsole.timeLog
ãconsole.timeEnd
ã䜿çšããŠãç¹å®ã®ã³ãŒããããã¯ã®å®è¡æéãèšæž¬ã§ããŸããããã«ããããã©ãŒãã³ã¹ã®åé¡ãç¹å®ãããããªããŸãã - é©åãªãã©ãŒãããã®å©çš:
console.table
ã䜿çšããŠããŒã¿ãããŒãã«åœ¢åŒã§è¡šç€ºãããªã©ãé©åãªãã©ãŒããããéžæããŠæ å ±ããããããã衚瀺ããŸãããã - ã³ã³ãœãŒã«åœä»€ã®ãµããŒããã§ãã¯: 䜿çšããã³ã³ãœãŒã«åœä»€ãç°å¢ã§ãµããŒããããŠããããäºåã«ç¢ºèªããããšãéèŠã§ããããç°å¢ã§ã¯äžéšã®ã³ãã³ãããµããŒããããŠããªãå¯èœæ§ãããããã§ãã
ãã¹ããã©ã¯ãã£ã¹ãšããŠããããã¬ãã«ã« console
ãªããžã§ã¯ãããªãå Žåã console
ã¡ãœããããµããŒããããŠããªãå Žåããšã©ãŒãçºçãããªãããã«ããããã«ã¹ã¿ããå®çŸ©ããããšãèããããŸããããã«ãããã³ãŒãããšã©ãŒãåŒãèµ·ããããšãªããã¹ã ãŒãºã«åäœã§ããŸãïŒconsole
ãªããžã§ã¯ãã¯ECMACScriptãšããŠã¯ã仿§å€ã§ããããšã«çæãå¿
èŠã§ã[1]ïŒã
以äžã¯ãåºæ¬ç㪠console
ã¹ã¿ãã®äŸã§ãã
if (typeof console === 'undefined') { console = { log: function() {}, debug: function() {}, info: function() {}, warn: function() {}, error: function() {}, assert: function() {}, clear: function() {}, table: function() {}, count: function() {}, countReset: function() {}, group: function() {}, groupCollapsed: function() {}, groupEnd: function() {}, time: function() {}, timeLog: function() {}, timeEnd: function() {}, dir: function() {}, dirxml: function() {}, trace: function() {} }; } // ããããå ã§ console ã¡ãœããã䜿çšã§ããŸã console.log('Hello, Console!');
ãã®ã¹ã¿ãã¯ãconsole
ãªããžã§ã¯ããååšããªãå Žåããç¹å®ã®ã¡ãœãããå®çŸ©ãããŠããªãå Žåã«ãããããã®ã¡ãœããã«å¯ŸããŠç©ºã®å®è£
ãæäŸããŸããããã«ãããconsole
ã¡ãœãããååšããªãç°å¢ã§ã³ãŒãããšã©ãŒã«ãªãããšãé²ãããšãã§ããŸãã
ãã ãããã®ã¢ãããŒãã¯æ
éã«äœ¿çšããå¿
èŠããããŸãããªããªããconsole
ã¡ãœãããååšããªãå Žåã¯éåžžãããã°ãã«ãããªããããéçºç°å¢ããããã°ã¢ãŒãã§ã®ã¿äœ¿çšãããããã«ãããšãã£ãé
æ
®ãå¿
èŠã§ããçç£ç°å¢ã§ã¯ããšã©ãŒãã°ã®èšé²ãéç¥ã·ã¹ãã ã䜿çšããŠåé¡ãæ€åºã»è§£æ±ºã§ããããã«ããæ¹ãæãŸããã§ãã
ãããã®ãã¹ããã©ã¯ãã£ã¹ãå®ãããšã§ãã³ã³ãœãŒã«ãã°ã广çã«å©çšãããããã°ãããã©ãŒãã³ã¹ã®åäžã«å¯äžã§ããŸãã
èèš»
[ç·šé]- ^ ECMA264::2. Conformanceã«there are no provisions in this specification for input of external data or output of computed results.ïŒæ¬ä»æ§æžã«ã¯ãå€éšããŒã¿ã®å ¥åãèšç®çµæã®åºåã«é¢ããèŠå®ã¯ãããŸãããïŒ