ã¯ããã«
JavaScriptã®æ§æãã§ãã¯ãã§ãããã¼ã«ã«ãJavaScript Lintã¨ãããã¼ã«ãããã¾ããä»æ¥ã¯ããã®JavaScript Lintã®ä½¿ãæ¹ããç´¹ä»ãã¾ãã
â»ç¾å¨ã®ææ°ãã¼ã¸ã§ã³ã¯ã0.3.0ã¨ãªã£ã¦ãã¾ãã®ã§ããããå ã«èª¬æãã¦ãã¾ãã
JavaScript Lint
HTMLã®ææ³ããã§ãã¯ãããã¼ã«ã«ãAnother HTML-lint gateway ãããã¾ãããJavaScript Lintã¯ããã®JavaScriptçã ã¨æã£ã¦ãã ãããããã¹ãã¨ãªã¢ã«å
¥åãããã³ã¼ãããªã³ã©ã¤ã³ã§ãã§ãã¯ããæ¹æ³ã¨ã³ãã³ãã©ã¤ã³ã§ãã§ãã¯ããæ¹æ³ã®2ã¤ä½¿ãæ¹ãã§ãã¾ãã
ä¼æ¥ã§ã¯ãã¼ãºããªããã°ã©ã ãæ¸ãã¦ããå ´åãããã¿ãããã«ã½ã¼ã¹ã³ã¼ãããªã³ã©ã¤ã³ã§ãã§ãã¯ãããã¨ã¯ã§ãã¾ãããæ
å ±ãå¤é¨ã«æ¼ããå¯è½æ§ãããããã§ããã¾ãããªã³ã©ã¤ã³ã§ã®ãã§ãã¯ã¯ã1ãã¡ã¤ã«ãã¤ããè¡ããªãä¸ãã¬ã¹ãã³ã¹ããã¾ãæ©ãããã¾ããããã®ç¹ããè¨ã£ã¦ãããã¼ã«ã«ã§ã®ã³ãã³ãã©ã¤ã³ãã§ãã¯ãã§ããã¨ããã®ã¯ãã¨ã¦ãé
åçã§ãã
JavaScript Lintã§ãã§ãã¯ã§ãããã®
JavaScript Lintã§ã¯ã以ä¸ã®ãããªæ§æã®åé¡ãæ¤åºãããã¨ãã§ãã¾ãã
* 足ããªãã»ãã³ãã³
* ifãforãwhileçã®ãªãã¨ããã«ãããã¬ã¼ã¹ï¼"{}"ï¼ãªã©
* ã»ãã³ãã³ã§ã¯ãªãã³ã³ãã§åºåããã¦ãã¾ã£ã¦ããæ
* returnãthrowãcontinueãbreakã«ãã£ã¦ãå®è¡ããããã¨ãç¡ããªã£ã¦ãã¾ã£ã¦ããã³ã¼ã
* breakã®ç¡ãcaseæ
* ããããªå ´æã§ã®ã¤ã³ã¯ãªã¡ã³ãããã¯ãªã¡ã³ã
* voidã使ããã¦ããæ
* "x+++y"ã®æ§ã«é£ç¶ãã¦ãã"+"ã"-"
* ã«ã¼ãé¨åã®ä¸ã§labeled ã¹ãã¼ãã¡ã³ãã使ããããé¨å
* ãã¬ã¼ã¹ã使ããã¦ããªãif, for, while
* æ°å¤ã®åãå¾ã«ã¤ãã¦ããå°æ°ç¹
* A leading zero that turns a number into octal (base 8).ï¼ï¼ï¼
* ã³ã¡ã³ãå ã«ããã³ã¡ã³ã
* ãã¼ã¬ã³ãã¢ãµã¤ã³ã¡ã³ããã³ãã³ãã«ã³ããåã«æ¥ã¦ããªãæ£è¦è¡¨ç¾
* ä¸ã¤ã®æãªã®ããããããªãã®ãåãããªããç¹ãã£ãæ
* ä½ããã¦ããªãæ
"JavaScript Lint"ã§JavaScriptã®ææ³ãç´°ãããã§ãã¯ããï¼ï¼[7korobi8oki.com]
JavaScript Lintã®ãã¦ã³ãã¼ã
1.以ä¸ã®ãµã¤ããããã使ãã®ãã©ãããã©ã¼ã ã«åããã¦ãJavaScript Lintããã¦ã³ãã¼ããã¾ãã
2.ãã¦ã³ãã¼ããããã¡ã¤ã«ã解åãã¦ãä»»æã®ãã£ã¬ã¯ããªã«æ ¼ç´ãã¾ãã
ã³ãã³ãã©ã¤ã³ã§ã®æ§æãã§ãã¯
ã³ãã³ãã©ã¤ã³ããJavaScript Lintã§æ§æãã§ãã¯ãè¡ãæ¹æ³ã説æãã¾ããåã®ç°å¢ã¯Macãªã®ã§ãMacç°å¢ã§ã®èª¬æã¨ãªãã¾ãããä»ã®OSãã使ãã®æ¹ã¯ãé©å®èªã¿æ¿ãã¦ãã ããã
1.ã¿ã¼ããã«ãèµ·åããJavaScript Lintã®ãã£ã¬ã¯ããªã«ç§»åãã¾ãã
$ cd jsl-0.3.0-mac
2.æå®ããjsãã¡ã¤ã«ã®æ§æãã§ãã¯ãè¡ãã«ã¯ã-processãªãã·ã§ã³ã§ãã§ãã¯å¯¾è±¡ã®ãã¡ã¤ã«åãæå®ãã¾ãã
$ ./jsl -process test.js
3.試ãã«ãã»ãã³ãã³ããªãjsãã¡ã¤ã«ãJavaScript Lintã§ãã§ãã¯ããã¨ã以ä¸ã®ãããªè¦åãåºåããã¾ããè¦åãã¨ã©ã¼ã¡ãã»ã¼ã¸ã¯ãã¹ã¦è±èªã§ãã
test.js(4): lint warning: missing semicolon
è¨å®ãã¡ã¤ã«ã使ã£ã¦æ§æãã§ãã¯ãè¡ã
JavaScript Lintã«ã¯ããã§ãã¯é ç®ã®æå¹ã»ç¡å¹ãåãæ¿ããããè¨å®ãã¡ã¤ã«ãããã¾ãããã£ã¬ã¯ããªå ã«åèããã¦ããjsl.default.confã¨ãããã¡ã¤ã«ããã®è¨å®ãã¡ã¤ã«ã§ããä»åº¦ã¯ããã®è¨å®ãã¡ã¤ã«ã使ã£ãæ§æãã§ãã¯ã®æ¹æ³ã説æãã¾ãã
1.ãªãªã¸ãã«ã®è¨å®ãã¡ã¤ã«ãç´æ¥ç·¨éãã¦ãã¾ãã®ã¯ããã¾ã好ã¾ãããªãã®ã§ãæ°è¦ã«è¨å®ãã¡ã¤ã«ãä½æãã¾ãã以ä¸ã®ã³ãã³ããå®è¡ããã¨ãjsl.confã¨ãããã1ã¤ã®è¨å®ãã¡ã¤ã«ãæ°è¦ã«ä½æããã¾ãã
$ ./jsl -help:conf > jsl.conf
2.jsl.confãç·¨éãã¾ããjsl.confã®æ«å°¾ã«+processã¨ããé ç®ãããã®ã§ããããã³ã¡ã³ãã¢ã¦ããã¾ãã*1
+process jsl-test.js â #+process jsl-test.js
3.è¨å®ãã¡ã¤ã«ã使ã£ã¦æ§æãã§ãã¯ãè¡ãã«ã¯ã-confãªãã·ã§ã³ã§è¨å®ãã¡ã¤ã«ãæå®ãã¾ãã
./jsl -conf jsl.conf -process test.js
ãã§ãã¯é ç®ã®ON/OFF
JavaScript Lintã¯ãæ°å¤ãã®ãã§ãã¯é
ç®ãããããã®ãã§ãã¯é
ç®ã«å¾ããã½ã¼ã¹ã³ã¼ããå³ãããã§ãã¯ãã¦ããã¾ãããã ããã®ãã§ãã¯ã¯ãããªããã¨ããå ´åã«ã¯ããã§ãã¯ãOFFã«ãããã¨ãã§ãã¾ãã
ããã»ã©ä½æããjsl.confã®9è¡ç®ãããããã### Warningsãã¨ããé
ç®ãããã¾ããããããåãã§ãã¯é
ç®ã表ãã¦ãã¾ããåãã§ãã¯é
ç®ã®è¡é ã«ããã+ãããã§ãã¯ãè¡ãã¨ããæå³ã§ãå対ã«ã-ãã¯ãã§ãã¯ãè¡ããªãã¨ããæå³ã§ãããã®ã+ãã¨ã-ããåãæ¿ãããã¨ã§ãã«ã¹ã¿ã ããæ§æãã§ãã¯ãè¡ããã¨ãã§ãã¾ãã
ã§ããè¨å®ãã¡ã¤ã«(ä¸è¨ã§ã¯ jsl.conf)ãã"+" 㨠"-" ãå ¥ãæ¿ãããã¨ã«ãã£ã¦ãé©å½ã«ç·¨éãã¾ãã
JavaScript Lint - ãã©ããªã話
ãããã«
以ä¸ããJavaScript Lintã®åºæ¬çãªä½¿ãæ¹ã§ãã
ã¨ã©ã¼ã¡ãã»ã¼ã¸ã¯æ®å¿µãªãããã¹ã¦è±èªã§ãããããã»ã©é£ããè±èªã§ããªãã®ã§ããªãã¨ãèªããã®ã§ã¯ãªããã¨æã£ã¦ãã¾ãã
ææ°ãã¼ã¸ã§ã³ãã¾ã 0.3.0ã¨ãªã£ã¦ãããéçºéä¸ã§ãããã¨ã伺ãã¾ãããããããå¾ã
ã«ã¢ãããã¼ãããã¦ãããã¨ãæå¾
ãã¦ãã¾ãã
以ä¸ã®ã¨ã³ããªããããã¦ã©ãã
- ã³ãã¼ã©ã¤ã(Copyright)ãèªåæ´æ°ããJavaScriptã®æ¸ãæ¹
- åå¿è
ã®ããã®JavaScriptã®ã¹ã³ã¼ã
- iPhoneããã®ã¢ã¯ã»ã¹ãã©ããå¤å®ã§ããJSã©ã¤ãã©ãªDetecting WebKit with JavaScript
- 社å
ã§JavaScript(JS)ã®åå¼·ä¼ããã£ã¦ã¿ããã(2)
- JavaScriptãå¦ã¶ä¸ã§é¿ãã¦ã¯éããªãã¬ãã·ã«ã«ã¹ã³ã¼ã
*1:ã³ã¡ã³ãã¢ã¦ãããªãå ´åãããã§æå®ãããã¡ã¤ã«ãåªå çã«æ§æãã§ãã¯ããã¾ãã