zoukankan      html  css  js  c++  java
  • 数据类型检测

    数据类型检测

    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
     
  • 相关阅读:
    用c#小程序理解线程
    我对线程入门理解
    网站发布后IIS故障解决办法
    ASP .NET XML 文件
    SortedList 对象兼有 ArrayList 和 Hashtable 对象的特性。
    (笔记)索引器
    HOW TO:使用 Visual C# .NET 在 ASP.NET 中创建自定义错误报告
    读取EXCEL的数据到datagridview
    一个超级简单的文件流操作WINDOW应用程序
    Gridview事件
  • 原文地址:https://www.cnblogs.com/songyaqi/p/5185473.html
Copyright © 2011-2022 走看看