JavaScript数据类型

Posted 罗毅豪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript数据类型相关的知识,希望对你有一定的参考价值。

javascript(ECMAScript5)是弱类型动态语言。我总结一下JS的数据类型相关知识。

一、六种数据类型

JS拥有number、boolean、string和null、undefined5种原始数据类型,还有object一种对象类型。

object类型又包括Function、Array和Date类型,等等。

 

二、隐式转换

要把数字转成字符串,我们可以用num+\'\'。

要把字符串转成数字,我们可以用str-0。

原因是当数字与字符串相加时,数字会隐式转换为字符串;而当字符串减去数字时,字符串会隐式转换为数字。

 

这里我们讲下==与===(严格相等)的区别:

==只判断值相等,不管类型,而===需要值和类型都相等。在进行==判断时,等号左右会进行隐式转换。

如6==\'6\'返回true,接口如果返回的status不确定是数字还是字符串时,我们可以直接用==去接,这是在实际工作对接中的一个好办法。

注意,null==undefined返回true,NaN和NaN不相等。

 

另外,new String(\'hi\')==\'hi\'也是返回true,即包装对象会隐式转换为原始类型进行比较。

 

三、包装对象

number、boolean和string有对应的包装类。

我们可以直接使用原始类型调用包装类型的方法,如str.length和number.toString(),这是因为原始类型被隐式转换为了其对应的包装对象,但是包装对象是临时的,会马上被销毁。

 

四、类型检测

为了程序的健壮性,我们需要进行类型检测。

这里介绍3种方法:

1.typeof

typeof适合判断基本类型和函数。(typeof null为object为历史原因)

 

2.instanceof

适合判断对象是否是从对应的原型链上继承下来的。格式为obj instanceof Object。

如[1,2] instanceof Array。

注意,在不同的window和iframe上,原型链不一样。

 

3.toString

 注意,在IE6-8中,null使用toString是返回Object的。

以上是关于JavaScript数据类型的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript学习:JavaScript数据类型

javascript中,数据类型和对象的关系(区别)

JavaScript数据类型有几种?

JavaScript之基础-3 JavaScript 数据类型数据类型转换

javascript数据类型的判断

JavaScript 数据类型与类型判断详解