JSHint的选项配置

asi

如果是真,JSHint会无视没有加分号的行尾,自动补全分号一直是Javascript很有争议的一个语法特性。默认,JSHint会要求你在每个语句后面加上分号,但是如果你认为自己理解了asi(automatic semicolon insertion),你可以抛弃JSHint对分号的检查。

bitwise

如果为真,JSHint会禁用位运算符Javascript允许位运算,但是他却没有整型,位运算符要把参与运算的数字从浮点数变为整数,并在运算后再转换回来。这样他们的效率就不如在别的语言中那么高。

boss

很霸气的选项,如果为真,那么JSHint会允许在if,for,while里面编写赋值语句。一般来说,我们会在循环、判断等语句中加入值的比较来做语句的运行条件,有时候会把==错写成赋值的=,通常,JSHint会把这个认定为一个错误,但是开启这个选项的化,JSHint就不会检查判断条件中的赋值 ,你是boss,你说的算:)。

curly

如果为真,JSHint会要求你在使用if和while等结构语句时加上{}来明确代码块。Javascript允许在if等结构语句体只有一句的情况下不加括号。不过这样做可能会让你的代码读起来有些晦涩。

debug

如果为真,JSHint会允许代码中出现debugger的语句。不过建议你最好在检测代码前去掉debug的语句。

eqeqeq

如果为真,JSHint会看你在代码中是否都用了===或者是!==,而不是使用==和!=。我们建议你在比较0,''(空字符),undefined,null,false和true的时候使用===和!===。

eqnull

如果为真,JSHint会允许使用"== null"作比较。== null 通常用来判断一个变量是undefined或者是null(当时用==,null和undefined都会转化为false)。

evil

如果为真,JSHint会允许使用evaleval提供了访问Javascript编译器的途径,这有时很有用,但是同时也对你的代码形成了注入攻击的危险,并且会对debug造成一些困难。记住,Function构造函数也是另一个‘eval’,另外,当传入的参数是字符串的时候,setTimeout和setInterval也会类似于eval。

forin

如果为真,那么,JSHint允许在for in 循环里面不出现hasOwnProperty,for in循环一般用来遍历一个对象的属性,这其中也包括他继承自原型链的属性,而hasOwnProperty可以来判断一个属性是否是对象本身的属性而不是继承得来的。

immed

如果为真,JSHint要求匿名函数的调用如下:

(function(){//}());

而不是

(function(){//bla bla})();

laxbreak

如果为真,JSHint则不会检查换行。Javascript会通过自动补充分号来修正一些错误,因此这个选项可以检查一些潜在的问题。

maxerr

设定错误的阈值,超过这个阈值jshint不再向下检查,提示错误太多。

newcap

如果为真,JSHint会要求每一个构造函数名都要大写字母开头。构造器是一种使用new运算符来创建对象的一种函数,new操作符会创建新的对象,并建立这个对象自己的this,一个构造函数如果不用new运算符来运行,那么他的this会指向全局对象而导致一些问题的发生。

noarg

如果为真,JSHint会禁止arguments.caller和arguments.callee的使用arguments对象是一个类数组的对象,它具有一个索引值。arguments.callee指向当前执行的函数(这个在ES5的严格模式中被禁用了),而arguments.caller指向调用当前函数的函数(如果有的话),并且,他并不是在所有的Javascript实现里面都有。

noempty

如果为真,JSHint会禁止出现空的代码块(没有语句的代码块)。如果为真,JSHint会禁用构造器,以避免一些问题。在JSLint中会主动禁用构造器的方式以避免一些潜在问题,但其实很多构造器的使用并非有害,例如如下的调用

new JsUIWindow();//注意这个调用是没有把构造器的结果赋值给变量的

因此,我们需要使用构造器的时候可以禁用这个选项。

nomen

如果为真,JSHint会禁用下划线的变量名。很多人使用_name的方式来命名他们的变量,以说明这是一个私有变量,但实际上,并不是,下划线只是做了一个标识。如果要使用私有变量,可以使用闭包来实现。

onevar

如果为真,JSHint期望函数只被var的形式声明一遍。

passfail

如果为真,JSHint会在发现首个错误后停止检查。

plusplus

如果为真,JSHint会禁用自增运算和自减运算++和--可能会带来一些代码的阅读上的困惑。

regexp

如果为真,JSHint会不允许使用.和[^...]的正则,因为这样的正则往往会匹配到你不期望的内容,并可能会应用造成一些危害。

undef

如果为真,JSHint会要求所有的非全局变量,在使用前都被声明。如果你不在一个本地作用域内使用var的方式来声明变量,Javascript会把它放到全局作用域下面。这样会很容易引起错误。

sub

如果为真,JSHint会允许各种形式的下标来访问对象。通常,JSHint希望你只是用点运算符来读取对象的属性(除非这个属性名是一个保留字),如果你不希望这样可以关闭这个选项。

strict

如果为真,JSHint会要求你使用use strict;语法。Strict 模式是ES5里面的一个新特性,他允许你把一个程序或者函数放在一个“严格”的作用域中。可见Resig写的一篇关于严格模式的blog严格模式做了几件事情:

1、他可以捕获一些错误和异常

2、当我们进行一下“不安全”的操作时,他会抛异常,例如访问全局变量。

3、他会禁止你使用一些奇淫技巧,或者不良的代码编写。

white

如果为true,JSHint会依据严格的空白规范检查你的代码。

jshint配置(js检查)的更多相关文章

  1. wepy build 错误 [Error] 未发现相关 less 编译器配置,请检查wepy.config.js文件。

    [Error] 未发现相关 less 编译器配置,请检查wepy.config.js文件. 缺少less包,npm install less -d

  2. JSHint配置详解

    Also available on Github JSHint配置详解 增强参数(Enforcing Options) 本类参数设为true,JSHint会产生更多告警. bitwise 禁用位运算符 ...

  3. Data Guard配置后续检查

    Data Guard配置后续检查 1.打开生产端节点192.166.1.190上的数据库实例: SQL>startup; 2.打开容灾端节点192.166.1.60上的数据库实例: SQL> ...

  4. 使用node.js检查js语法错误

    如果没有一些工具和插件写JavaScript代码遇到语法错误找起来很费时间,请教了同事怎么用node.js检查 用浏览器测试的时候报语法错误. 1.点击红圈中的蓝色按钮,下次刷新是会在抛出异常的时候自 ...

  5. 富文本编辑器上传图片需要配置js,后台代码

    富文本编辑器上传图片需要配置js,后台代码

  6. js 检查文件格式和文件大小

    之前有个工作需要用到js检查文件大小和文件格式,网上查了下有个兄弟写的不错,拿过来就能直接用,感谢他顺便记录下.原始文章地址http://www.jb51.net/article/43498.htm ...

  7. springboot 解决配置js/css/img缓存问题

    # 解决配置js/css/img缓存问题 spring.resources.chain.strategy.content.enabled=true spring.resources.chain.str ...

  8. webpack快速入门——配置JS压缩,打包

    1 .首先在webpack.config.js中引入 const uglify = require('uglifyjs-webpack-plugin'); 2.然后在plugins配置里 plugin ...

  9. nginx高性能WEB服务器系列之六--nginx负载均衡配置+健康检查

    nginx系列友情链接:nginx高性能WEB服务器系列之一简介及安装https://www.cnblogs.com/maxtgood/p/9597596.htmlnginx高性能WEB服务器系列之二 ...

  10. js检查判断设备

    js检查判断设备 var navigatorType = {}; var u=navigator.userAgent; navigatorType.IsIE= u.indexOf('Trident') ...

随机推荐

  1. poj3249Test for Job(记忆化搜索)

    /* 题意:给一个DAG图,n个节点,每个节点都对应一个值,入度为零的点走到出度为零的点,计算所有可能路径 经过节点值的和最大! 思路:记忆话搜索:也就是如果我们搜索到某一个节点的时候发现该节点已经存 ...

  2. Oracle存储过程获取YYYY-MM-DD的时间格式

    环境:Oracle 10g,11g 问题重现:PL/SQL中命令窗口下,发现存储过程得到的时间格式不符合预期要求. SQL> select sysdate from dual; SYSDATE ...

  3. Shine.js – 帮助你实现各种好看的阴影效果

    Shine.js 是一个用于实现漂亮阴影的 JavaScript 库.您可以设置动态光的位置,可定制的阴影.不依赖于第三方库,兼容 AMD.能在支持 textShadow 或 boxShadow 的浏 ...

  4. 七、L2CAP

    1.      L2CAP 在BR/EDR模式下,在connection procedure成功执行后,两台设备通过一条物理信道(physical channel)连接在一起,同时两者之间建立起了一条 ...

  5. UI自动化测试框架(项目实战)python、Selenium(日志、邮件、pageobject)

    其实百度UI自动化测试框架,会出来很多相关的信息,不过就没有找到纯项目的,无法拿来使用的:所以我最近就写了一个简单,不过可以拿来在真正项目中可以使用的测试框架. 项目的地址:https://githu ...

  6. AppleScript的字典怎么看怎么用

    新迭代之前忙里偷闲摸鱼了几种脚本的写法:bash, alfred,automator,applescript 这篇就说说这个applescript 以iterm为例 初看它的字典大概长这样: 1.方法 ...

  7. JavaScript最佳实践

    作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5540469.html 举个例子:用户在点击某个链接的时候弹出一个新窗口 弹出窗口的方法采用:wind ...

  8. Excel文件相关:XLS格式文件基本操作

    序 1.添加引用 添加引用->Com->Microsoft Excel 9.0 Object Library(对应Excel2000) *Microsoft Excel 11.0 Obje ...

  9. SQL--子查询

    什么是子查询 子查询:顾名思义,在一个查询中,有另外一个查询,这个查询就叫做,主查询的子查询. [把一个查询的结果,在另一个查询中使用就叫子查询.(将一个查询语句,作为一个结果集,供其他SQL语句使用 ...

  10. Json.Net

    下载地址:Json.NET 文档地址:Json.NET Documentation 基本的序列化与反序列化 public class Product { public string Name { ge ...