-
JavaScript值类型的判断?
2020-05-08 11:11:00目录 1 确定一个值是何种类型 ...3 怎么判断对象类型? 1 instanceof 2 Object.prototype.toString.call(xx)。 4 typeof null // "object"的原因 1 确定一个值是何种类型 https://wangdoc.com/ja...目录
2 Object.prototype.toString.call(xx)。
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分别返回
number
、string
、boolean
、
undefined;函数函数返回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 怎么判断一个值类型的?
2020-02-12 04:17:48可以通过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为数组 }
-
怎么判断文本框中的值的数据类型是否为float?
2019-06-11 10:36:33求各位大神告知,C#中怎么判断textbox中输入的值,是否为float类型,谢谢! -
关于jsonobject类型的Null值怎么判断的问题,JSONObject$Null
2018-11-08 18:04:57取出的值为null,并不是字符串“null”,用object == null 判断结果为false; 后面发现这个null和定义的null不同,后面找到object自带的方法 使用这个方法返回true...... JsonObject.isNull。当然,可以的话...取出的值为null,并不是字符串“null”,用object == null 判断结果为false;
后面发现这个null和定义的null不同,后面找到object自带的方法
使用这个方法返回true......
JsonObject.isNull。当然,可以的话,尽量不用 JsonObject
-
怎么判断时间类型的值是否为空
2016-07-15 11:40:28数据库有个一列是datetime的类型 if(receiveTime.toString()!= null && receiveTime.toString().length()>0 ) { findCondition.put("f.receiveTime", "%" + receiveTime.toString().trim() + ... -
怎么判断一个变量的值是接口类型?
2015-09-25 20:16:09能够通过is或者as关键词判断一个变量是否是接口类型? public static void Judge(object ma) { var ta = ma.GetType(); //通过Type可以对传入的参数类型进行... //不实例化Type,怎么判断是否变量是否是接口? } -
js怎么判断对象类型,获取对象值..
2015-09-22 15:30:24我遍历完了document.all对象,找到了name为forSerarch_开头的两个对象,js如何知道他们是什么类型的对象,然后获取到他们的值,比如这一个text,一个radio,他们取值方式不一样,怎么知道这个对象是什么类型 ... -
怎么判断_variant_t的值是什么类型
2009-11-19 14:18:001。在执行的SQL语句一般都是_bstr_t 2.Connection 中的RecordsAffected 为VARIANT 3.使用get_Value()获得的记录的值为 VAARIANT ... _bstr_t 中记录了字符串的长度, _variant_t 记录有数据的类型和数据的值 如 _var1。在执行的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);
} -
C# 反射怎么判断属性是int还是datetime,或者其他值类型(求助)
2014-08-21 11:07:40反射的时候,只有一个IsValueType判断是否是值类型,那我怎么来判断是int 还是bool,或者其他值类型呢[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/8.gif][/img] -
怎么判断_VARIANT_T的值是什么类型(转)
2013-04-07 12:08:00将 _variant_t 类型的变量,转换成字符串(比如如果是数字,则转换成数字对应的字符串 :如 10.2 -> "10.200000")*/_variant_t var;CString str; //转换以后的字符串//以下代码演示如何转换为C标准字符串型if ... -
怎么判断_variant_t的值是什么类型 (转)
2011-09-22 15:21:45(转) http://www.cppblog.com/ivenher/articles/775.html /* 将 _variant_t 类型的变量,转换成字符串(比如如果是数字,则转换成数字对应的字符串 :如 10.2 -> "10.200000") */ -
怎么判断一个DWORD类型的值是几进制的?
2012-03-21 20:39:08我要check一个DWORD类型参数是不是16进制,如果不是16进制要转换成16进制,还有我用这个DWORD 拼Cstring的时候使用%d么? 用ForMart方法。 -
判断double类型是否为空_PHP怎么判断变量是否为空和是否有值存在?(图文+视频教程...
2021-01-27 11:37:12此时我们就需要知道PHP怎么判断变量是否为空或者判断此变量是否存在。这个问题也是PHP常见面试题之一。本篇文章就给大家详细介绍PHP判断变量是否为空以及PHP判断变量是否存在的具体方法。下面我们通过简单的代码示例... -
DateTime类型在后台怎么判断是否为空
2018-12-03 14:36:07由于DateTime类型属于值类型,后台进行判断是否为NULL肯定会报错 而且不可能这样进行判断,因为DateTime有一个默认的最小值:{0001/1/1 0:00:00} 因此判断用户有没有输入日期的话可以使用 //假设前端接收到的数据... -
javascript中怎么判断两个数据类型相等
2020-03-19 00:01:10在 JavaScript 中,判断一个变量的类型尝尝会用 typeof 运算符,在使用 typeof 运算符时采用引用类型存储值会出现一个问题,无论引用的是什么类型的对象,它都返回 “object”。 所以怎么才能判断两个类型相等呢? ... -
SQL的日期每一位的格式----怎么判断MySQL数据库中某一日期类型的字段值是不是今天
2018-10-18 14:48:12怎么判断MySQL数据库中某一日期类型的字段值是不是今天 select * from table_name where date_format(日期字段,'%e %b %y') = date_format(now(), '%e %b %y'); 全部转换成同样的格式再进行比较。 ... -
java中Double类型判断值是否为NaN的四种方法
2019-05-14 15:11:38在java连接MongoDB数据库中用Double接收值时,发现部分数据到前端展示是NaN,需要对这部分数据进行处理,但是一下子想不到Double类型的值是NaN应该怎么判断。 NaN定义 NaN在Double的类中定义NaN = 0.0d / 0.0 public ... -
Javascript 你一般怎么判断数据类型?
2017-12-19 10:32:011.typeof a.原始类型:数值、字符串、布尔值分别返回number、string、boolean。...因此,使用typeof可以判断原始类型数据的类型,但对于对象(进一步区别数组,对象等)就有局限性了 2.instanceof in -
javascript 怎么判断一个值是未定义的?
2016-05-27 16:31:08判断一个值是否未定义,就是判断值是否undefined 可以通过typeof()这个方法来获取值的类型 var a ; if(typeof(a)==="undefined"){ //a为undefined类型 } a = 123; if(typeof(a)==="number"){ //a为number... -
Javascript判断数据类型与真假值隐形转换研究
2019-10-02 22:04:04我们在开发的时候经常要判断真和假,这是我们经常写的代码: if(a){ alert(1) } 那我们怎么判定a是真还是假呢?下面这些值的真假又是多少呢?它们的数据类型又是怎样的呢? "", 0, "true", "false",... -
js 类型判断
2018-02-28 18:05:13所以就要说一下这些类型是怎么判断的。在说类型判断之前先介绍个东西 Object.prototype.toString 可以查看链接 翻译过来就是 当 toString 方法被调用的时候,下面的步骤会被执行: 如果 this 值是 -
js数据类型判断,数组怎么证明是数组,你怎么证明是你自己?
2020-07-01 16:42:47JavaScript有五种方法可以确定一个值到底是什么类型,分别是typeof运算符,constructor法,instanceof运算符,Object.prototype.toString方法以及Array.isArray法。 1、typeof运算符判断类型 typeof是... -
从字节码的角度来解释为什么for循环或者while循环中都是用int类型的值来进行判断
2021-02-26 13:30:55目录1、引出问题2、for循环内部的int类型的i++是怎么执行的3、for循环内部的double类型的i++是怎么执行的4、for循环内部的short类型的i++是怎么执行的5、while循环和for循环可以互相转换的原因 1、引出问题 大家有... -
tinyint数据类型php筛选时怎么判断_PHP的垃圾回收机制
2020-11-21 19:41:48一、原理php5和php7的垃圾回收机制都是利用引用计数二、php5和php7不同点1、PHP5标量数据类型会计数,PHP7标量数据类型不再计数,不...三、变量在zval的变量容器中结构zval中,除了存储变量的类型和值之外,还有is_... -
python元组的比较返回值类型_python怎么判断两个元组是否相等
2020-12-17 14:34:21返回值如果比较的元素是同类型的,则比较其值,返回结果。如果两个元素不是同一种类型,则检查它们是否是数字。如果是数字,执行必要的数字强制类型转换,然后比较。如果有一方的元素是数字,则另一方的元素"大"(数字是"..... -
C++做蓝牙扫描到的classofdevice怎么用来判断设备类型
2017-06-01 07:31:44但是网上根据值判断设备类型的表格是 二进制的数 比如下面这篇 http://blog.csdn.net/shichaog/article/details/53455169 然后这个网站是可以输入6位数这种直接得出类型 http://www.ampedrftech.com/cod.htm 我...
-
PD协议 协议层
-
学习记录:利用指针删除数组中特定元素‘
-
Galera 高可用 MySQL 集群(PXC v5.6 + Ngin
-
2014年重庆理工大学《物联网平台设计与开发》期末考试试卷).pdf
-
MySQL 数据库的基本操作(数据完整性约束)
-
朱老师鸿蒙系列课程第1期-3.鸿蒙系统Harmonyos源码配置和管理
-
MySQL 数据类型和运算符
-
Oracle_11g_Linux到Linux_DataGuard部署
-
华为1+X——网络系统建设与运维(中级)
-
MySQL 函数、用户自定义函数
-
Gens2.14cn.rar
-
P4921 [MtOI2018]情侣?给我烧了!
-
MySQL Router 实现高可用、负载均衡、读写分离
-
2014年重庆理工大学《RFID原理与应用开发》期末考试试卷 .pdf
-
Spring-06 AOP
-
大数相加
-
MySQL 事务和锁
-
xxljob源码分析
-
朱老师鸿蒙系列课程第1期-2鸿蒙系统Harmonyos源码架构分析
-
2014年重庆理工大学《面向对象程序设计》期末考试试卷 .pdf