首页 > 其他 > 详细

数据类型检测

时间:2016-02-09 11:58:44      阅读:223      评论:0      收藏:0      [点我收藏+]
数据类型检测

1.instanceof

  • 判断对象是否是构造函数的实例化
  • 可以用来做判断已知对象的类型
  • 对象与构造函数在原型链上是否有关系
1.    function Person() {
2. this.name = "yaqi";
3. }
4. Person.prototype = {};
5. var p = new Person();
6. console.log(p instanceof Person); // true

2.typeof

  • 数据类型判断
1.    var num = 1
2. var str = ‘传智播客‘
3. var bool=false;
4. var arr=[];
5. var obj={name:‘传智播客‘};
6. var date = new Date();
7. var fn = function(){}
8.
9. ///******************************************************************************
10. // 数据类型判断 - typeof
11. //*******************************************************************************
12. console.log(‘数据类型判断 - typeof‘)
13. console.log(typeof undefined)//‘undefined‘
14. console.log(typeof null) // well-known bug
15. console.log(typeof true) //‘boolean‘
16. console.log(typeof 123) //‘number‘
17. console.log(typeof "abc") //‘string‘
18. console.log(typeof function() {}) //‘function‘
19. var arr=[];
20. console.log(typeof {}) //‘object‘
21. console.log(typeof arr)//‘object‘
22. console.log(typeof unknownVariable) //‘undefined‘
23. // 在使用 typeof 运算符时采用引用类型存储值会出现一个问题,
24. // 无论引用的是什么类型的对象,它都返回 "object"。

3.toString.call()

  • 通用但很繁琐的方法: 可以利用Object.prototype.toString.call(arg)来判断数据类型
1.    console.log(‘数据类型判断 - toString.call‘)
2. console.log(toString.call(123)) //[object Number]
3. console.log(toString.call(‘123‘)) //[object String]
4. console.log(toString.call(undefined)) //[object Undefined]
5. console.log(toString.call(true)) //[object Boolean]
6. console.log(toString.call({})) //[object Object]
7. console.log(toString.call([])) //[object Array]
8. console.log(toString.call(function(){})) //[object Function]
9.
10.
11. console.log(Object.prototype.toString.call(str) === ‘[object String]‘) //-------> true;
12. console.log(Object.prototype.toString.call(num) === ‘[object Number]‘) //-------> true;
13. console.log(Object.prototype.toString.call(arr) === ‘[object Array]‘) //-------> true;
14. console.log(Object.prototype.toString.call(date) === ‘[object Date]‘) //-------> true;
15. console.log(Object.prototype.toString.call(fn) === ‘[object Function]‘) //-------> true;
16.

4.constructor

  • 根据对象的constructor来判断
1.    //    根据对象的constructor判断: constructor
2. var arr=[];
3. console.log(‘数据类型判断 - constructor‘)
4. console.log(arr.constructor === Array) //----------> true
5. console.log(date.constructor === Date) //-----------> true
6. console.log(fn.constructor === Function) //-------> true
 

数据类型检测

原文:http://www.cnblogs.com/songyaqi/p/5185473.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!