JavaScript检测之basevalidate.js
上篇文章「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()); // 不传参数,参数默认为 undefined
console.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的更多相关文章
- Javascript检测浏览器对CSS属性的支持 /* supports */
//检测浏览器对CSS属性的支持 supports = (function() { var div = document.createElement('div'), vendors = 'Khtml ...
- 使用JavaScript检测浏览器
假设你真的需要检测浏览器的类型,使用JavaScript非常easy达到. View Demo Download Source from GitHub JavaScript有一个navigator的标 ...
- javascript基础入门之js中的数据类型与数据转换01
javascript基础入门之js中的数据结构与数据转换01 js的组成(ECMAScript.BOM.DOM) js中的打印语句: 数据类型 变量 ...
- JavaScript性能优化篇js优化
JavaScript性能优化篇js优化 随着Ajax越来越普遍,Ajax引用的规模越来越大,Javascript代码的性能越来越显得重要,我想这就是一个很典型的例子,上面那段代码因为会被频繁使用, ...
- 初探JavaScript(三)——JS带我"碰壁"带我飞
已经写了两篇关于小白的JavaScript之行,不可否认,每一种语言都有其精华与糟粕之处,来不及细细体味其精华奥妙,也没法对其评头论足,只能先了解,后深入.到目前为止已经看完<JavaScrip ...
- 初探JavaScript(二)——JS如何动态操控HTML
除去五一三天,我已经和<JavaScript Dom编程艺术>磨合了六天,第一印象很好.慢慢的,我发现这是一块排骨,除了肉还有骨头.遇到不解的地方就会多看几遍,实在不懂的先跳过,毕竟,初次 ...
- 强大的JavaScript动画图形库mo.js
最近在学习前端动画方面知识时发现了挺有趣的一个动画的图形库mo.js,页面效果真是酷炫,有兴趣的同学可以研究下:). 酷炫的效果: 以下是官方的demo效果,更多详情请查看 mo.js http:// ...
- 省市县 三级 四级联动Javascript JQ 插件PCASClass.js
想要使用这款组件,需要页面引入 PCASClass.js 核心文件,该文件在您的HTML文档<head>标签之内. <script type="text/javascrip ...
- javascript检测当前浏览器是否为微信浏览器
<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...
随机推荐
- [Python] 发送email的几种方式
python发送email还是比較简单的,能够通过登录邮件服务来发送,linux下也能够使用调用sendmail命令来发送,还能够使用本地或者是远程的smtp服务来发送邮件,无论是单个,群发,还是抄送 ...
- UNIX下解压缩文件
用法示例以Sun Solaris (其他unix如linux.aix大体相同)为例=========================================================== ...
- 【类似N^N做法的斐波那契数列】【HDU1568】 Fibonacci
Fibonacci Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- Android混淆配置文件规范
#打开project.properties文件中的proguard.config. -optimizationpasses 5 # 指定代码的压缩级别 -dontusemixedcaseclassna ...
- quick-x 2.2.5 DragonBones 某些fla导出使用后player卡死
1 2 3 4 5 6 7 8 9 10 11 --test 龙骨 self._db = dragonbones.new({ skeleton="game ...
- listbox修改字体大小
listBox1.Font = new Font(this.Font.FontFamily, 14);
- commands - `tar`
remove files after pack: tar --remove-files -cf all.tar * compression: -j: bzip2 -z: gzip add file t ...
- Fragment之一:基本原理
1.低版本API对Fragment的支持 Fragment必须被加载进Acitivity中,才能呈现.而在低于3.0版本的API中,由于不存在Fragment,因此必须使用support包: (1)对 ...
- javabean对象自动赋值给另一个javabean对象
方法1:把JavaBean的from的值自动set给to,省略了自己从from中get然后再set给to import java.beans.BeanInfo;import java.beans.In ...
- struts2开发经验小结(method="{1}"等)
这里的{1}表示接收前面action里通过通配符传来的值,例如你配置的是<action name="*Crud" class="example.Crud" ...