精华内容
下载资源
问答
  • 目录 1 确定一个是何种类型 ...3 怎么判断对象类型? 1 instanceof 2 Object.prototype.toString.call(xx)。 4 typeof null // "object"的原因 1 确定一个是何种类型 https://wangdoc.com/ja...

    目录

    1 确定一个值是何种类型

    2 typeof与instanceof 区别

    1 typeof

    2 instanceof

    3 怎么判断对象类型?

    1 instanceof

    2  Object.prototype.toString.call(xx)。

    4  typeof null // "object"的原因

    5 思维导图


    1 确定一个值是何种类型

    https://wangdoc.com/javascript/types/general.html#typeof-%E8%BF%90%E7%AE%97%E7%AC%A6

    typeof运算符

    instanceof运算符

    Object.prototype.toString方法

    2 typeof与instanceof 区别

    1 typeof

    typeof 是一元运算符,同样返回一个值数据类型的字符串。数值、字符串、布尔值、undefined分别返回numberstringbooleanundefined函数函数返回function;对象(除了函数)以及null返回object

    除了 null 类型以及 Object 类型不能准确判断外,其他数据类型都能返回正确的类型。

    //1 数字--number
    console.log(typeof 123); //返回值:number
    
    //2 字符串--string
    console.log(typeof "123"); //返回值:string
    
    //3 布尔值--boolean
    console.log(typeof true); //返回值:boolean
    
    //4 undefined--undefined
    console.log(typeof undefined); //返回值:undefined
    
    //5 null--object
    console.log(typeof null); //返回值:object
    
    //6 Symbol--symbol
    let sym = Symbol("123");
    console.log(typeof sym); //返回值:symbol
    
    //7 函数--function
    let fun = function (num){
        let nums = num;
    }
    console.log(typeof fun); //返回值:function
    
    //8 函数--object
    let obj = {
        a: 1
    }
    console.log(typeof obj); //返回值:object
    console.log(typeof []); //返回值:object
    console.log(typeof {}); //返回值:object
    
    //9 未声明的变量
    console.log(typeof a); //返回值:undefined   注意:在严格模式下也能返回这个值
    console.log(a); //a is not defined  使用没有声明的变量会报错

    2 instanceof

    返回一个布尔值判断某个对象是不是另一个对象的实例,表示对象是否为某个构造函数的实例instanceof的原理是检查右边构造函数的prototype属性,是否在左边对象的原型链上。

    //1 instanceof运算符返回一个布尔值
    let obj = new Object("ji25");//生成一个String包装类型的对象
    console.log(obj instanceof Object); //返回值:true
    //上面语句等价于===
    console.log(Object.prototype.isPrototypeOf(obj));//返回值:true
    console.log(obj instanceof String); //返回值:true
    //上面语句等价于===
    console.log(String.prototype.isPrototypeOf(obj));//返回值:true
    
    //2 由于任意对象(除了null)都是Object的实例,instanceof运算符可以判断一个值是否为非null的对象。
    console.log(null instanceof Object); //返回值:false
    
    //3 instanceof判断值的类型。
    console.log([] instanceof Array); //返回值:true
    
    //4 instanceof运算符只能用于对象,不适用原始类型的值。
    console.log("str" instanceof String); //返回值:false
    
    //5 对于undefined和null,instanceof运算符总是返回false。
    console.log(undefined instanceof Object); //返回值:false
    console.log(null instanceof Object); //返回值:false

    3 怎么判断对象类型?

    1 instanceof

    可以正确的判断对象的类型,instanceof的原理是检查右边构造函数的prototype属性,是否在左边对象的原型链上。

    2  Object.prototype.toString.call(xx)

    通过Object.prototype.toString.call(xx)这样我们就可以获得类似 [object Type] 的字符串。

    其实Object.prototype.toString方法是Object原型上面的方法,所有继承于Object的实例对象都有该方法,为了使Object.prototype.toString应用于任何值,需要使用call函数改变绑定的对象

    //对于所有的类型,返回值都是--[object Type]
    
    //1 基本数据类型--返回值中的Type是值的数据类型的字符串
    console.log(Object.prototype.toString.call(123)); //[object Number]
    console.log(Object.prototype.toString.call("str")); //[object String]
    console.log(Object.prototype.toString.call(true)); //[object Boolean]
    console.log(Object.prototype.toString.call(undefined)); //[object Undefined]
    console.log(Object.prototype.toString.call(null)); //[object Null]
    console.log(Object.prototype.toString.call(Symbol(1))); //[object Symbol]
    console.log("-------------");
    
    //2 特殊对象
    console.log(Object.prototype.toString.call([])); //[object Array]
    console.log(Object.prototype.toString.call(function () {})); //[object Function]
    console.log(Object.prototype.toString.call(new Date())); //[object Date]
    console.log(Object.prototype.toString.call(/^.*$/)); //[object RegExp]
    (function myFun() { //立即执行函数
        //arguments对象是函数中特有,表示传入的参数
        console.log(arguments);//[Arguments] { '0': 123, '1': '125' }
        console.log(Object.prototype.toString.call(arguments));//object Arguments]
    })(123, "125");
    (function myFun11() { //立即执行函数
        try{
            console.log(a);
        }catch (e) {
            console.log(Object.prototype.toString.call(e));//[object Error]
        }
    })();
    
    //3 其他普通对象
    console.log(Object.prototype.toString.call({}));//[object Object]

    4  typeof null // "object"的原因

    null的类型是object,这是由于历史原因造成的。1995年的 JavaScript 语言第一版,只设计了五种数据类型(对象、整数、浮点数、字符串和布尔值),没考虑null,只把它当作object的一种特殊值。后来null独立出来,作为一种单独的数据类型,为了兼容以前的代码,typeof null返回object就没法改变了。

    5 思维导图

    百里于2020年5月8日

    参考:JavaScript 教程GitHub

    如果有错,请您指出!如有侵权,请联系我删除!

    展开全文
  • 可以通过typeof()这个方法来获取类型 var a ; if(typeof(a)==="undefined"){ //a为undefined类型 } a = 123; if(typeof(a)==="number"){ //a为number类型 } a={}; if(typeof(a)==="object"){ //a为object类型...
    可以通过typeof()这个方法来获取值的类型
    
    var a ;
    if(typeof(a)==="undefined"){
    //a为undefined类型
    }
    
    a = 123;
    if(typeof(a)==="number"){
    //a为number类型
    }
    
    a={};
    if(typeof(a)==="object"){
    //a为object类型
    }
    
    a="abc";
    if(typeof(a)==="string"){
    //a为string类型
    }
    
    a=true;
    if(typeof(a)==="boolean"){
    //a为boolean类型
    }
    
    a=function(){};
    if(typeof(a)==="function"){
    //a为function类型
    }
    
    a=[];
    if(typeof(a)==="object"){
    //值为数组的时候,typeof返回也是"object"
    }
    
    要判断值是否为数组,可以通过instanceof方法,判断一个值是否为另一个值的实例
    a=[];
    if(a instanceof Array){
    //a为数组
    }
    
    展开全文
  • 求各位大神告知,C#中怎么判断textbox中输入的,是否为float类型,谢谢!
  • 取出的为null,并不是字符串“null”,用object == null 判断结果为false; 后面发现这个null和定义的null不同,后面找到object自带的方法 使用这个方法返回true...... JsonObject.isNull。当然,可以的话...

    取出的值为null,并不是字符串“null”,用object == null 判断结果为false;

     

    后面发现这个null和定义的null不同,后面找到object自带的方法

    使用这个方法返回true......

    JsonObject.isNull。当然,可以的话,尽量不用 JsonObject

    展开全文
  • 数据库有个一列是datetime的类型 if(receiveTime.toString()!= null && receiveTime.toString().length()>0 ) { findCondition.put("f.receiveTime", "%" + receiveTime.toString().trim() + ...
  • 能够通过is或者as关键词判断一个变量是否是接口类型? public static void Judge(object ma) { var ta = ma.GetType(); //通过Type可以对传入的参数类型进行... //不实例化Type,怎么判断是否变量是否是接口? }
  • 我遍历完了document.all对象,找到了name为forSerarch_开头的两个对象,js如何知道他们是什么类型的对象,然后获取到他们的,比如这一个text,一个radio,他们取值方式不一样,怎么知道这个对象是什么类型 ...
  • 怎么判断_variant_t的是什么类型

    千次阅读 2009-11-19 14:18:00
    1。在执行的SQL语句一般都是_bstr_t 2.Connection 中的RecordsAffected 为VARIANT 3.使用get_Value()获得的记录的为 VAARIANT ... _bstr_t 中记录了字符串的长度, _variant_t 记录有数据的类型和数据的 如 _var

       1。在执行的SQL语句一般都是_bstr_t  
      2.Connection   中的RecordsAffected   为VARIANT  
      3.使用get_Value()获得的记录的值为   VAARIANT  
          等等。。。  
      _bstr_t   中记录了字符串的长度,  
      _variant_t   记录有数据的类型和数据的值  
          如   _variant_t   ttt;  
          ttt.vt=I4_VT;   表示数据类型为整数  
          ttt.lVal   为数据的值

     

    variant_t var; 

    CString str; //转换以后的字符串



    //以下代码演示如何转换为C标准字符串型
    if (var.vt == VT_I4)
    {
        long lNum;
        char szCh[21];
        str=var.bstrVal;
        WideCharToMultiByte
                 (CP_ACP, 0, var.bstrVal, -1,
                  szCh, sizeof(szCh), NULL, NULL);
    }

    //以下代码演示如何转换成逻辑型
    if( var.vt == VT_BOOL)
    {
        BOOL bVar;
        lNum=var.lVal;
        bVar= var.boolVar==0? FALSE : TRUE;
    }

    //以下代码演示为其余类型(补充)
    switch(var.vt)
    {

    case VT_BSTR:         //var is BSTR type
         str=var.bstrVal;
         break;

    case VT_I2:           //var is short int type
         str.Format("%d",(int)var.iVal);
         break;

    case VT_I4:          //var is long int type
         str.Format("%d",var.lVal);
         break;

    case VT_R4:         //var is float type
         str.Format("%10.6f",(double)var.fltVal);
         break;

    case VT_R8:         //var is double type
         str.Format("%10.6f",var.dblVal);
         break;

    case VT_CY:        //var is CY type
         str=COleCurrency(var).Format();
         break;

    case VT_DATE:     //var is DATE type
         str=COleDateTime(var).Format();
         break;

    case VT_BOOL:     //var is  VARIANT_BOOL
         str= (var.boolVal==0) ?"FALSE": "TRUE";
         break;

    default:
         str.Format("Unk type %d/n",var.vt);
         TRACE("Unknown type %d/n",var.vt);
    }

    展开全文
  • 反射的时候,只有一个IsValueType判断是否是值类型,那我怎么判断是int 还是bool,或者其他值类型呢[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/8.gif][/img]
  • 将 _variant_t 类型的变量,转换成字符串(比如如果是数字,则转换成数字对应的字符串 :如 10.2 -> "10.200000")*/_variant_t var;CString str; //转换以后的字符串//以下代码演示如何转换为C标准字符串型if ...
  • (转) http://www.cppblog.com/ivenher/articles/775.html /* 将 _variant_t 类型的变量,转换成字符串(比如如果是数字,则转换成数字对应的字符串 :如 10.2 -> "10.200000") */
  • 我要check一个DWORD类型参数是不是16进制,如果不是16进制要转换成16进制,还有我用这个DWORD 拼Cstring的时候使用%d么? 用ForMart方法。
  • 此时我们就需要知道PHP怎么判断变量是否为空或者判断此变量是否存在。这个问题也是PHP常见面试题之一。本篇文章就给大家详细介绍PHP判断变量是否为空以及PHP判断变量是否存在的具体方法。下面我们通过简单的代码示例...
  • DateTime类型在后台怎么判断是否为空

    千次阅读 2018-12-03 14:36:07
    由于DateTime类型属于值类型,后台进行判断是否为NULL肯定会报错  而且不可能这样进行判断,因为DateTime有一个默认的最小值:{0001/1/1 0:00:00} 因此判断用户有没有输入日期的话可以使用  //假设前端接收到的数据...
  • 在 JavaScript 中,判断一个变量的类型尝尝会用 typeof 运算符,在使用 typeof 运算符时采用引用类型存储会出现一个问题,无论引用的是什么类型的对象,它都返回 “object”。 所以怎么才能判断两个类型相等呢? ...
  • 怎么判断MySQL数据库中某一日期类型的字段是不是今天 select * from table_name where date_format(日期字段,'%e %b %y') = date_format(now(), '%e %b %y'); 全部转换成同样的格式再进行比较。 ...
  • 在java连接MongoDB数据库中用Double接收时,发现部分数据到前端展示是NaN,需要对这部分数据进行处理,但是一下子想不到Double类型是NaN应该怎么判断。 NaN定义 NaN在Double的类中定义NaN = 0.0d / 0.0 public ...
  • 1.typeof a.原始类型:数值、字符串、布尔分别返回number、string、boolean。...因此,使用typeof可以判断原始类型数据的类型,但对于对象(进一步区别数组,对象等)就有局限性了 2.instanceof in
  • 判断一个是否未定义,就是判断值是否undefined 可以通过typeof()这个方法来获取类型 var a ; if(typeof(a)==="undefined"){ //a为undefined类型 } a = 123; if(typeof(a)==="number"){ //a为number...
  • 我们在开发的时候经常要判断真和假,这是我们经常写的代码: if(a){ alert(1) } 那我们怎么判定a是真还是假呢?下面这些的真假又是多少呢?它们的数据类型又是怎样的呢? "", 0, "true", "false",...
  • js 类型判断

    2018-02-28 18:05:13
    所以就要说一下这些类型怎么判断的。在说类型判断之前先介绍个东西 Object.prototype.toString 可以查看链接 翻译过来就是 当 toString 方法被调用的时候,下面的步骤会被执行: 如果 this
  •   JavaScript有五种方法可以确定一个到底是什么类型,分别是typeof运算符,constructor法,instanceof运算符,Object.prototype.toString方法以及Array.isArray法。   1、typeof运算符判断类型 typeof是...
  • 目录1、引出问题2、for循环内部的int类型的i++是怎么执行的3、for循环内部的double类型的i++是怎么执行的4、for循环内部的short类型的i++是怎么执行的5、while循环和for循环可以互相转换的原因 1、引出问题 大家有...
  • 一、原理php5和php7的垃圾回收机制都是利用引用计数二、php5和php7不同点1、PHP5标量数据类型会计数,PHP7标量数据类型不再计数,不...三、变量在zval的变量容器中结构zval中,除了存储变量的类型之外,还有is_...
  • 返回值如果比较的元素是同类型的,则比较其,返回结果。如果两个元素不是同一种类型,则检查它们是否是数字。如果是数字,执行必要的数字强制类型转换,然后比较。如果有一方的元素是数字,则另一方的元素"大"(数字是".....
  • 但是网上根据值判断设备类型的表格是 二进制的数 比如下面这篇 http://blog.csdn.net/shichaog/article/details/53455169 然后这个网站是可以输入6位数这种直接得出类型 http://www.ampedrftech.com/cod.htm 我...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 578
精华内容 231
关键字:

值类型怎么判断