JavaScript中的数据类型

一、JavaScript中的数据类型 = 基本数据类型 + 引用数据类型

 

JavaScript中有五种简单的数据类型(也称为基本数据类型),Undefined、Null、Boolean、Number、String。

Undefined和Null都是只有一个指的数据类型,值分别为undefined和null。在使用var声明变量但未对其加以初始化时,变量值就是undefined;而null值表示一个空对象指针。

Boolean类型只有两个字面值:true和false。在流控制语句中,非Boolean类型的值会自动调用Boolean()函数执行相应的Boolean转换。

Number类型可以表示整数和浮点数值。

String类型用于表示由零或多个16位Unicode字符组成的字符序列即字符串。

 

引用数据类型可以自定义,但ECMAScript中已经内置有几种常用的引用数据类型。

引用类型的这些标识其实都是构造函数,而构造函数属于函数的一种,本质又是继承Object的。

Object

Array

Date

RegExp

Function

 

Boolean、Number、String这三种基本的数据类型都对应有各自的基本包装类型。每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,从而让我们能够调用一些方法来操作这些数据。自动创建的基本包装类型,它们的生存期很短,只存在于一行代码的执行瞬间,然后就立即销毁了,不能对它们添加属性。

 

二、类型检测

①typeof:使用时语法格式可以typeof 空格 变量 也可以typeof(变量)

“undefined”-----如果这个值未定义

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

“string”-----变量是字符串

“number”-----变量是数值

“object”-----变量是对象(另外检测null时也返回这个,在IE和火狐中检测正则表达式也返回这个)

“function”-----变量是函数类型(另外,在IE和火狐之外的浏览器中检测正则表达式返回这个)

 

有三点需要注意,一个是null,一个是function,一个是正则表达式。使用typeof检测所有的引用类型(非函数类型)时,都返回“object”,检测null时也是;在检测引用类型中的函数类型时,则返回“function”;对于正则表达式来说,由于ECMA规范的原因该返回“function”的,因为它在内部实现了call方法,但是,在IE和firefox中,返回“object”。

 

②instanceof:使用时  实例 instanceof 类型构造函数

instanceof操作符的原理,我已经查过了,就是看实例的原型对象链中是否包含构造函数的prototype属性所指向的原型对象,是则返回true,否则返回false。

  

三、安全的类型检测

在任何值上调用Object原生的toString()方法,都会返回一个[object NativeConstructorName]格式的字符串。

如检测一个值是否为正则表达式:

function isRegExp(value){

         return Object.prototype.toString.call() == "[object RegExp]";

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值