数据类型检测
2016-02-09 11:25
309 查看
数据类型检测
可以用来做判断已知对象的类型
对象与构造函数在原型链上是否有关系
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
相关文章推荐
- Android 布局(fill_content、wrap_content、match_parent)
- cocos2d-x与安卓混编实现“更换头像”
- 1008. Elevator (20)
- AVD之PANIC: Could not open ***
- JavaScript引用类型和值类型
- 思维导图之《机器视觉知识体系》
- 盒布局和界面设计
- 用两个队列实现一个栈
- Android开发环境搭建
- hdoj 2035人见人爱A^B
- 3.以普通表格型单表为模板定制模块:短信库维护
- 第四章表达式
- 雷思海:500年的猴子,只说了一桩心事
- 基于Android arm64 Linux got 调试_02
- java实现逆波兰式四则运算
- document.documentElement和document.body的 scrollHeight/scrollTop/clientHeight 以及判断滚动条是否已拉到页面最底部
- cocos2d-x3.2 的UserDefault
- 思维导图之《时间的朋友》
- Python爬虫学习01
- 迭代器模式——解决问题的第三者