Javascript的基本数据类型和判断

本文介绍了JavaScript中使用typeof、instanceof及构造函数等方法判断数据类型的技巧,并对比了它们的优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  ECMAScript中有6种简单数据类型:Undefined,Null,Boolea,Number,String和Object,这些都是一些基本知识,有意思在后面 

 用javascript里的typeof检测一下这6个数据类型你会有新发现 

  “undefined”    ----------   如果值未定义                       Undefined

  “boolean”      ----------     如果这个值是布尔值              Boolean

  “string”        ----------     如果这个值是字符串              String

  “number”      ----------     如果这个值是数值类型           Number

  “object”        ----------     如果这个值是对象或null         Object

  “function”       ----------     如果这个值是函数               Function

 但有的时候typeof是不靠谱的,

例如我们这样声明一个变量:

var str=new String('aaa');

alert(typeof str);


var iS=new Number('123');

alert(typeof iS);

返回的都是object,没有返回string和number.typeof在这里失败了,现在得请出另一位选手 instanceof , instanceof的意思是XXX是XXX的实例.

上代码:

var str=new String('aaa');

alert(str instanceof String);


var iS=new Number('123');

alert(iS instanceof Number);

这样返回的都是true;在这样的声明方式下我们就能判断JS的基本数据类型了;

但是instanceof判断var str='abc'这样的声明返回的是false;所以兼容的写法是 (typeof str== String) || (str instanceof String);

这样只要一个对了就可以了;

例外还有2种判断JS数据类型的方法

一个是利用面向对象中的constructor

var str='123';

var str1=new String('abc');

alert(str.constructor== String);

alert(str1.constructor== String);

返回的都是true;这样就不用写上面那么麻烦了.

第二种是利用JS基本对象属性里的toString方法,这个方法默认返回数据类型的class

var str='123';

var str1=new String('abc');

alert(Object.prototype.toString.call(str)=='[object String]');

alert(Object.prototype.toString.call(str1)=='[object String]');

返回的都是true.就是代码写的有点多,不过可以清楚的判断数据的基本类型了.

不像typeof和instanceof那样某一方面不靠谱.  

  

  

  

转载于:https://www.cnblogs.com/newljc/p/3728861.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值