天天看点

JavaScript中的数据类型转换 NaN一、判断数据类型的两种方法:二、转换为数字类型(number):三、转换为字符串类型(string):四、转换为布尔类型(boolean):

一、判断数据类型的两种方法:

1、 typeof (检测的数据)

var a = "hello world";
    var b = 6.5;
    // 检测a的数据类型
    console.log(typeof(a));     //string
    //检测a,b的数据类型
    console.log(typeof(a),typeof(b));  // string  number

           

2、instanceof 检测的数据

instanceof 是用来判断 A 是否为 B 的实例,表达式为:A instanceof B,如果 A 是 B 的实例,则返回 true,否则返回 false。
[] instanceof Array; // true
	{} instanceof Object;// true
	new Date() instanceof Date;// true
	 
	function Person(){};
	new Person() instanceof Person;
	 
	[] instanceof Object; // true
	new Date() instanceof Object;// true
	new Person instanceof Object;// true

           

我们发现,虽然 instanceof 能够判断出 [ ] 是Array的实例,但它认为 [ ] 也是Object的实例,为什么呢?

我们来分析一下 [ ]、Array、Object 三者之间的关系:

从 instanceof 能够判断出 [ ].proto 指向 Array.prototype,而 Array.prototype.proto 又指向了Object.prototype,最终 Object.prototype.proto 指向了null,标志着原型链的结束。因此,[]、Array、Object 就在内部形成了一条原型链:

JavaScript中的数据类型转换 NaN一、判断数据类型的两种方法:二、转换为数字类型(number):三、转换为字符串类型(string):四、转换为布尔类型(boolean):

二、转换为数字类型(number):

数据类型 Number() parseInt() parseFloat() Math.round()
string 字符串内容为数字 数字 数字向下取整 数字 数字四舍五入
字符串内容不为数字 NaN NaN NaN NaN
boolean 布尔值为true 1 NaN NaN 1
布尔值为false NaN NaN
undefined NaN NaN NaN NaN
null NaN NaN

注: 要转换的数据都放在括号里

三、转换为字符串类型(string):

数据类型 String() .toString()
number 内容为数字的字符串 内容为数字的字符串
boolean 内容为true或false的字符串 内容为true或false的字符串
undefined 内容为undefined的字符串 报错,不可用
null 内容为null的字符串 报错,不可用

注:.tostring()的用法为: 要改变类型的数据.toString()

四、转换为布尔类型(boolean):

数据类型 Boolean()
number 非0数字 true
false
string 非空字符串 true
false
undefined false
null false

注: 要转换的数据都放在括号里