今天介绍一个关于js静态代码的检查工具,此工具可以帮助更好的规范代码的编写形式以及检查错误。由于jslint的分支jsHint有跟多的配置项相对使用也比较方便,依次本文主要介绍jsHint的使用方式。

以下为本文的目录:

  1. 关于jsHint的介绍

  2. 关于jsHint的安装

  3. 关于jsHint的使用

  4. 关于jsHint的下载

1.关于jsHint的介绍

jsHint是jsLint的分支其定义了更多的配置,使用也相对灵活,jsHint主要是用来对javascript静态代码进行规范性检查的,其定义了一些比较严格的规则,这些规则同时也可以自定义配置,关于更为详细的解释说明可以【点击查看jsHint官网】,另外可【点击查看jsLint百度百科解释】,【jsLint官网】。

2.关于jsHint的安装

jsHint在eclipse中的安装主要可以通过安装eclipse的插件的方式,此时需要像安装安卓adk一样,其安装方式分为离线安装和在线安装,在线安装方式为首先打开help>install new software>add然后输入一个名称,输入插件的地址,插件在线地址可从【插件网站获取】,其图例如下。

另外离线安装方式需要先下载插件可【点击下载最新插件】,然后需要自己创造一个服务器容器例如使用tomcat或者apache容器都可以,然后将插件丢进容器中使其可访问即可,后面的步骤与上类似。

3.关于jsHint的使用

在eclipse中的安装完成后可以在window>preference中看到jsHint的配置选项,这里是eclipse的全局配置,图示如下:

当然也可以进行单个项目的特定规则配置,可以选择单个项目并右键,点击jsHint选项,其中可以配置对哪些文件进行校验:

最后点击jsHint下面的configuration配置可以设置具体的配置信息,图示如下:

部分jsHin的解释如下:

  1. JSHint enforcing options
  2. =================
  3.   
  4. #### * bitwise
  5.     
  6.     作用:值为true时,禁止使用位操作符,如"^,|,&"等.
  7.     
  8. #### * camelcase
  9.   
  10.     作用:值为true时,变量名必须使用驼峰风格(如"loginStatus")或UPPER_CASE风格(如"LOGIN_STATUS").
  11.     
  12. #### * curly
  13.     
  14.     作用:值为true时,不能省略循环和条件语句后的大括号.
  15.     
  16.     备注:如"if (con) ...",需要写成"if (con) { ... }".
  17.     
  18. #### * eqeqeq
  19.     
  20.     作用:值为true时,禁止使用"==""!=",而应该使用"===""!==".
  21.     
  22. #### * es3
  23.     
  24.     作用:值为true时,表示你的代码需要遵守ECMAScript 3规范.
  25.     
  26. #### * forin
  27.     
  28.     作用:值为true时,在所有"for in"循环中,必须使用hasOwnPropery过滤掉对象继承来的成员.
  29.     
  30. #### * immed
  31.     
  32.     作用:???.
  33.     
  34. #### * indent
  35.     
  36.     作用:该选项要求你的代码必须使用指定的tab缩进宽度,如"indent:4".
  37.     
  38. #### * latedef
  39.     
  40.     作用:值为true时,禁止在变量定义之前使用它.
  41.     
  42. #### * newcap
  43.     
  44.     作用:值为true时,构造函数名需要大写. 
  45.     
  46.     备注:经测试,该选项是否激活,JSHint都不会检查构造函数名.
  47.     
  48. #### * noarg
  49.     
  50.     作用:值为true时,禁止使用arguments.callerarguments.callee.
  51.     
  52. #### * noempty
  53.     
  54.     作用:值为true时,不允许代码中出现空的语句块("{}").
  55.     
  56. #### * nonew
  57.     
  58.     作用:值为true时,禁止使用产生副作用的构造器调用方式,如"new MyConstructor();".
  59.     
  60. #### * plusplus
  61.     
  62.     作用:值为true时,禁止使用一元递增("++")和递减("--")运算符.
  63.     
  64. #### * quotmark
  65.     
  66.     作用:该选项用于统一代码中的引号风格,可选的值有三个:
  67.           (1) single -- 只能使用单引号;
  68.           (2) double -- 只能使用双引号;
  69.           (3) true -- 两者任选其一,但不能同时出现.
  70.     
  71. #### * undef
  72.     
  73.     作用:值为true时,禁止使用未定义的变量.
  74.     
  75. #### * unused
  76.     
  77.     作用:该选项激活后,对于"已定义却未使用的变量"会给出警告,可选的值有三个:
  78.           (1) vars -- 只检查变量,不检查函数形参;
  79.           (2) strict -- 检查变量和函数形参;
  80.           (3) true -- 检查变量和函数形参,但允许这种情况:一个未使用的形参后紧随一个被使用的形参.
  81.           
  82.     示例:stricttrue的区别
  83.           (1) strict
  84.               function show(x,y) {alert(y);}  // jshint校验结果:'x' is defined but never used
  85.               show(1);
  86.           
  87.           (2) true
  88.               function show(x,y) {alert(y);} // jshint校验结果:pass
  89.               show(1); 
  90.         
  91. #### * strict
  92.     
  93.     作用:值为true时,该选项会要求所有函数在ECMAScript 5的严格模式中运行.
  94.     
  95.     备注:该选项激活后,仅在函数作用域中启用严格模式(如果在全局作用域中启用,可能会影响页面中的第三方JS).
  96.  
  97. #### * trailing
  98.  
  99.     作用:值为true时,禁止在代码的末尾出现空白.
  100.     
  101. #### * maxparams
  102.  
  103.     作用:该选项用于设置每个函数形参数量的上限,如"maxparams:3".
  104.     
  105. #### * maxdepth
  106.  
  107.     作用:该选项用于设置每个函数中代码块嵌套层级的上限,如"maxdepth:1".
  108.     
  109.     示例:/* jshint maxdepth:1 */
  110.           function show() {
  111.             if (1) {
  112.               if (2) { // jshint校验结果:Blocks are nested too deeply. (2)
  113.                 alert('the second nested');
  114.               }
  115.             }
  116.           }
  117.     
  118. #### * maxstatements
  119.  
  120.     作用:该选项用于设置每个函数中语句数量的上限,如"maxstatements:4".
  121.     
  122.     备注:函数声明被看作一个语句.
  123.     
  124.     示例:/* jshint maxstatements:4 */
  125.           function main() { // jshint校验结果:This function has too many statements. (5)
  126.             var i = 0;
  127.             var j = 0;
  128.  
  129.             // 函数声明被看作一个语句
  130.             function inner() {
  131.               var i2 = 1;
  132.               var j2 = 1;
  133.               return i2 + j2;
  134.             }
  135.  
  136.             j = i + j;
  137.             return j;
  138.           }
  139.  
  140. #### * maxcomplexity
  141.  
  142.     作用:???
  143.     
  144. #### * maxlen
  145.  
  146.     作用:该选项用于设定每行的最大字符长度.

以上配置解释来自github【jsHint 配置项说明(汉化版)】。  更详细可参考官网【点击进入官网】。

4.关于jsHint的下载

同样此处提供作者百度分享链接:

jsHint插件下载【点击下载】。

http://www.startexample.com/2014/05/11/jshint-%E9%9D%99%E6%80%81%E4%BB%A3%E7%A0%81%E6%A3%80%E6%9F%A5%E5%B7%A5%E5%85%B7eclipse%E4%B8%AD%E4%BD%BF%E7%94%A8/

jsHint-静态代码检查工具eclipse中使用的更多相关文章

  1. 静态代码检查工具 cppcheck 的使用

      CppCheck是一个C/C++代码缺陷静态检查工具.不同于C/C++编译器及其它分析工具,CppCheck只检查编译器检查不出来的bug,不检查语法错误.所谓静态代码检查就是使用一个工具检查我们 ...

  2. 静态代码检查工具 cppcheck 的使用(可分别集成到VS和QT Creator里)

    CppCheck是一个C/C++代码缺陷静态检查工具.不同于C/C++编译器及其它分析工具,CppCheck只检查编译器检查不出来的bug,不检查语法错误.所谓静态代码检查就是使用一个工具检查我们写的 ...

  3. C#静态代码检查工具StyleCode

    C#静态代码检查工具StyleCode -- 初探 最近我们Advent Data Service (ADS) 在项目上需要按照代码规范进行代码的编写工作,以方便将来代码的阅读与维护. 但是人工检查起 ...

  4. Python静态代码检查工具Flake8

    简介 Flake8 是由Python官方发布的一款辅助检测Python代码是否规范的工具,相对于目前热度比较高的Pylint来说,Flake8检查规则灵活,支持集成额外插件,扩展性强.Flake8是对 ...

  5. PC-lint 简明教程(C/C++静态代码检查工具)

    前言 PC-lint是一款小而强大的C/C++静态代码检查工具,它可以检查未初始化变量,数组越界,空指针等编译器很难发现的潜在错误.在很多专业的软件公司如Microsoft,PC-Lint检查无错误无 ...

  6. 基于Source Insight_Scan的C/C++静态代码检查工具安装说明

    基于Source Insight_Scan的C/C++静态代码检查工具安装说明   本文链接:https://blog.csdn.net/M19930517/article/details/79977 ...

  7. [原创]Java静态代码检查工具介绍

    [原创]Java静态代码检查工具介绍 一  什么是静态代码检查? 静态代码分析是指无需运行被测代码,仅通过分析或检查源程序的语法.结构.过程.接口等来检查程序的正确性,找出代码隐藏的错误和缺陷,如参数 ...

  8. 静态代码检查工具-PMD初学者入门篇

    前言: PMD是一款静态代码分析工具,它能够自动检测各种潜在缺陷以及不安全或未优化的代码. PMD更多地是集中在预先检测缺陷上,它提供了高度可配置的丰富规则集,用户可以方便配置对待特定项目使用那些规则 ...

  9. 静态代码检查工具-PMD刚開始学习的人入门篇

    前言: PMD是一款静态代码分析工具.它能够自己主动检測各种潜在缺陷以及不安全或未优化的代码. PMD很多其它地是集中在预先检測缺陷上.它提供了高度可配置的丰富规则集,用户能够方便配置对待特定项目使用 ...

随机推荐

  1. windows7无法启动Telnet服务,出现…

    windows7无法启动Telnet服务,出现错误1068 2012 年 03 月 16 日 在[控制面板--程序--打开或关闭Windows功能]中开启telnet服务器和客户端后,在运行窗口中输入 ...

  2. 来自word2013发布的测试文档

    SWIG 是一个非常优秀的开源工具,支持您将 C/C++ 代码与任何主流脚本语言相集成. 此外,它向更广泛的受众公开了基本代码,改善了可测试性,让您的 Ruby 代码库某部分能快速写出高性能的 C/C ...

  3. 怎么查看linux系统是32还是64

    1.getconf LONG_BIT or getconf WORD_BIT例如:2.file /bin/ls例如: 查看linux的版本:

  4. 4. docker镜像的概念、管理(查看、下载、删除)

    镜像的概念 镜像是一个包含程序运行必要依赖环境和代码的只读文件,它采用分层的文件系统,将每一次改变以读写层的形式增加到原来的只读文件上.镜像是容器运行的基石. 下图展示的是Docker镜像的系统结构. ...

  5. 3. docker容器内信息获取、命令的执行、容器的导入和导出

    一.依附容器 依附操作attach通常用在由docker start或者docker restart启动的交互型容器中.由于docker start启动的交互型容器并没有具体终端可以依附,而容器本身是 ...

  6. OrderBy和OrderByDescending排序

    昨天有练习对数字阵列进行排序,<C#阵列Array排序>https://www.cnblogs.com/insus/p/10825174.html 其实一切都弄得很复杂,array已经有2 ...

  7. 钉钉/支付宝小程序和微信小程序的区别及转换方案

    最近接到一个工作任务,是把钉钉小程序转微信小程序... 对,居然还有这种操作,之前只听过微信小程序转支付宝小程序的,钉钉转微信是什么鬼

  8. Solr 6.7学习笔记(02)-- 配置文件 managed-schema (schema.xml) - filter(5)

    自定义fieldType时,通常还会用到filter.filter必须跟在tokenizer或其它filter之后.如: <fieldType> <analyzer> < ...

  9. 剑指Offer的学习笔记(C#篇)-- 数组中只出现一次的数字

    题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. 题目给定:num1,num2分别为长度为1的数组.传出参数:将  num1[0], num2[0 ...

  10. 【T-BABY 夜谈大数据】基于内容的推荐算法

    这个系列主要也是自己最近在研究大数据方向,所以边研究.开发也边整理相关的资料.网上的资料经常是碎片式的,如果要完整的看完可能需要同时看好几篇文章,所以我希望有兴趣的人能够更轻松和快速地学习相关的知识. ...