上篇文章「JavaScript检测原始值、引用值、属性」中涉及了大量有用的代码范例,为了让大家更方便的使用这些代码,博主特意把这些代码重新整理并托管到 GitHub,项目地址是:https://github.com/stone0090/s-fontend/tree/master/me/basevalidate。

basevalidate.js 包含 14个独立检测方法1个综合检测方法,示例代码如下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>basevalidate test</title><script type="text/javascript" src="basevalidate.js"></script><script>var Person = function(){this.name = 'stone';this.age = 30;}var person = new Person();var nums = [123, 456, 789];// 14个独立检测方法console.log(baseValidate.isString(null));console.log(baseValidate.isNumber(null));console.log(baseValidate.isBoolean(null));console.log(baseValidate.isUndefined(null));console.log(baseValidate.isNull(null));console.log(baseValidate.isObject(null));console.log(baseValidate.instanceOf(null));console.log(baseValidate.isFunction(null));console.log(baseValidate.isArray(null));console.log(baseValidate.isProperty(null));console.log(baseValidate.isOwnProperty(null));console.log(baseValidate.isDomProperty(null));console.log(baseValidate.isBomProperty(null));console.log(baseValidate.isEmpty(null));// 1个综合检测方法 baseValidate(value, object),等价于 baseValidate.validateAll(value ,object)console.log(baseValidate('123'));console.log(baseValidate(123));console.log(baseValidate(true));console.log(baseValidate(person, Person));console.log(baseValidate(nums));console.log(baseValidate('age', person));console.log(baseValidate('name', person));console.log(baseValidate(alert));console.log(baseValidate(document.getElementById));// 以下皆为 isEmpty() 方法为 false 的情况console.log(baseValidate()); // 不传参数,参数默认为 undefinedconsole.log(baseValidate(null));console.log(baseValidate(''));console.log(baseValidate(0));console.log(baseValidate(false));console.log(baseValidate({}));console.log(baseValidate([]));console.log(baseValidate(NaN));</script>
</head>
<body></body>
</html>

测试结果如下:

不知道大家有没有发现,其中一个结果好像不太正确,console.log(baseValidate('name', person)) 为什么会输出 isBomProperty: true,这是因为window 对象中也有 name 属性,所以 name 也被认为是 BOM 的属性。

欢迎关注微信公众号「劼哥舍」,老斯基带你飙车。

JavaScript检测之basevalidate.js相关推荐

  1. 小汤学编程之JavaScript学习day01——认识JS、JS基础语法

    一.认识JS 1.JavaScript的组成     2.浏览器执行js简介     3.JavaScript是什么?     4.扩展内容 二.JS基础语法 1.代码书写位置     2.变量    ...

  2. JavaScript检测视频的编码格式是否为h264

                             JavaScript检测视频的编码格式是否为h264  更多前端信息可以关注博客:http://www.colbrus.com        之前在网 ...

  3. html动态加载js方法,如何通过JavaScript动态加载js

    在Web开发时,有可能会遇到这么一种情况:我们需要通过一个js文件中引用另一个js文件中的函数,可是另一个函数有没有办法在页面中通过该 方法比较简单,具体实例详见代码: 文件1:demo.js fun ...

  4. 如何通过JavaScript动态加载js

    在Web开发时,有可能会遇到这么一种情况:我们需要通过一个js文件中引用另一个js文件中的函数,可是另一个函数有没有办法在页面中通过该<script>标签加载.于是,我们有了通过js动态加 ...

  5. JavaScript动态加载js文件

    /********************************************************************** JavaScript动态加载js文件* 说明:* 之前没 ...

  6. 问题解答004:用javascript检测输入的只能是汉字,字母或者数字,并且长度为4...

    问:如何用javascript检测输入的只能是汉字,字母或者数字,并且长度为4(一个汉字为2个长度,字母或数字为1个长度)? 答:直接写代码吧: <script type="text/ ...

  7. javascript检测浏览器类型和版本号(兼容各浏览器)

    代码  1 from: http://www.webreference.com/tools/browser/javascript.html  2 http://browserspy.dk/browse ...

  8. html js轮播图无白链接,JavaScript:100%原生js实现左右切换的轮播图(无延迟加载)...

    简介这篇文章主要介绍了JavaScript:100%原生js实现左右切换的轮播图(无延迟加载)以及相关的经验技巧,文章约11114字,浏览量505,点赞数3,值得参考! *{ margin:0; pa ...

  9. 自学JavaScript第四天- JS 进阶:AJAX Promise Canvas

    自学JavaScript第四天- JS 进阶:AJAX Promise Canvas AJAX 使用 XMLHttpRequest 使用 fetch() 方法 处理 AJAX 数据 安全限制 跨域方案 ...

最新文章

  1. CentOS7编译安装LNMP
  2. HDFS 文件格式——SequenceFile RCFile
  3. 6、WHERE:条件查询数据
  4. wxHtml 示例:wxHtmlEasyPrinting 测试
  5. 【Envi风暴】Envi 5.4遥感影像镶嵌原来如此简单!
  6. 计算机比特块的输出概念,第1讲-比特的概念及计算机的组成原理.ppt
  7. mso-number-format
  8. 客户端调用Web服务
  9. memset详解 设置无穷大INF
  10. [ERROR]-Error: failure: repodata/filelists.xml.gz from addons: [Errno 256] No more mirrors to try.
  11. 苦劝学弟学妹们,explain一定要学明白,以后有大用途
  12. DNF单机版搭建(局域网、外网)
  13. mtk 6577 root
  14. 【Linux系列文章】克隆虚拟机与常用问题
  15. 浅谈汽车轮胎匹配视觉防错检测应用
  16. 数学建模学习(28):又一夜没睡,爆肝整理所有类型matlab求解微分方程+案例实战,学不会来砍我
  17. 解决mysql8.0登录验证失败的问题
  18. 6271. 2019.8.4【NOIP提高组A】锻造 (forging)
  19. leetcode每日一道(3)最多能有多少个点位于同一直线上
  20. 那些深藏在记忆深处的片段 动漫篇 国外动漫部分(排名不分先后)

热门文章

  1. 2018全球科技中心报告
  2. “我辞职了,决定全职去开发我的操作系统!”
  3. 第二十章:异步和文件I/O.(十一)
  4. MySQL的binlog_row_image
  5. [老贴]《asp.net高级编程》读书笔记(2)
  6. 迁移数据中心的三大风险与应对策略
  7. 尾田荣一郎参与制作!两部《海贼王》VR游戏正在开发中
  8. Nginx 的recv() failed 错误解决一例
  9. 公有云和私有云,哪种是大势所趋?
  10. Linux服务器生产环境中的文件删除与替换