由于 JavaScript 不做任何自动的类型检查,所有它就成了开发人员的责任。因此,在 JavaScript 代码
中其实很少进行类型检测。最常见的类型检测就是查看某个值是否为 null。但是,直接将值与 null
比较是使用过度的,并且常常由于不充分的类型检查导致错误。看以下例子:
function sortArray(values){ if (values != null){ //避免! values.sort(comparator); } }该函数的目的是根据给定的比较子对一个数组进行排序。为了函数能正确执行, values 参数必需
是数组,但这里的 if 语句仅仅检查该 values 是否为 null。还有其他的值可以通过 if 语句,包括字
符串、数字,它们会导致函数抛出错误。
现实中,与 null 比较很少适合情况而被使用。必须按照所期望的对值进行检查,而非按照不被期
望的那些。例如,在前面的范例中, values 参数应该是一个数组,那么就要检查它是不是一个数组,
而不是检查它是否非 null。函数按照下面的方式修改会更加合适:
function sortArray(values){ if (values instanceof Array){ //推荐 values.sort(comparator); } }该函数的这个版本可以阻止所有非法值,而且完全用不着 null。
这种验证数组的技术在多框架的网页中不一定正确工作,因为每个框架都有其自
己的全局对象,因此,也有自己的 Array 构造函数。如果你是从一个框架将数组传
送到另一个框架,那么就要另外检查是否存在 sort()方法。
如果值应为一个引用类型,使用 instanceof 操作符检查其构造函数;
如果值应为一个基本类型,使用 typeof 检查其类型;
如果是希望对象包含某个特定的方法名,则使用 typeof 操作符确保指定名字的方法存在于对
象上。
代码中的 null 比较越少,就越容易确定代码的目的,并消除不必要的错误。
转载请注明出处: 皮哈皮阿
本文的链接地址: https://blog.phpat.com/web/441.html
本文最后发布于2016年06月01日10:14
,已经过了3187天没有更新,若内容或图片失效,请留言反馈
-
emlog主题模板 beginning 更新至v2.6.1
最近更新:更新到v2.5.7
2017/08/02
-
element-ui Radio 单选框组件默认值选不中?
请求中为数字/布尔的字段要多加注意,类型问题会导致很多bug出现。
2019/02/12
-
基于emlog开发的微信小程序开源了
基于emlog开发的微信小程序
2018/01/18
-
emlog模版仿小米论坛版本: V2.0
仿小米论坛版本更新V2.0,本次暂时更新这样了,以后会持续更新优化的。
2012/08/07
-
element-ui el-table 表格疯狂抖动跳动不停
element-ui el-table 表格疯狂抖动跳动不停, 这究竟是道德的沦丧还是人性的毁灭.~~
2019/07/11
-
Windows7程序图标无法锁定到任务栏的解决办法
2012/07/19
暂无评论
@戴墨镜的刘备:哈喽,路过点赞。
vue.js组件之手写签名板vue-signature-simple
太好看了,快点更新!太棒了!👍真的很赞!
vue.js组件之手写签名板vue-signature-simple
@子恒:😂躺平吧,世界都跟你没关系
你写得非常清晰明了,让我很容易理解你的观...
Emlog插件RSS订阅器发布
一直到今天,还没10天,我支付宝里仅剩7...
@樊鑫:不支持,仅支持pro版本,可以在...
Beginning-Pro发布,Emlog-Pro + Beginning-Pro, 更Pro