由于 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 比较越少,就越容易确定代码的目的,并消除不必要的错误。
本文发布于2016年06月01日10:14
,已经过了3250天,若内容或图片失效,请留言反馈
转载请注明出处: 皮哈皮阿
本文的链接地址: https://blog.phpat.com/dev/441.html
-
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
暂无评论
emlog简约社区模版发布了。
今天的你,戴口罩了吗? 没戴?小心病毒安排你跳社会摇!🕺 记得勤洗手,冲掉坏运气~ 积极防护,保护自己,晴天咱们一起当人群里最靓的仔!✨
2019加油!钱包要鼓,头发要多,烦恼要少,快乐要爆。愿你工作摸鱼得潇洒,生活撒欢得漂亮!别怕,宇宙都在暗中支持你!
人生真的是多姿多彩
不是每朵白云,都会带来真情;不是每个拥抱,都会面带微笑;不是每次思念,都能立刻兑现;不是每个朋友,都在身边守候;不是每个日子,都逢良辰吉时。国庆节到了,愿你节日快乐!
昨天和今天有什么不同
经朋友提示,Beginning模板一周年了,恭喜。 好事总会发生,敬请期待更好的作品
beginning模板越来越好了[耶]
2018是个新的开始
“生命是属于每个人自己的感受,不属于任何别人的看法。”