数据类型的转换

JavaScript 一种动态数据类型语 言,变量 是没有类型的,可以随机赋予任意值。但是,数据本身和各种运算是有类型的,因此运算时变量 需要转换类型, 而且转换 非常灵活。 大多数情况下,这种数据类型转换是 自动的,但是有时也需要 手动强制转换。

 

隐式类型转换

 

 

隐式类型转换,即 自动转换。JavaScript 支持 自动类型转换,这种类型的功能转换 非常强 大。

 

 转换为字符串

 

  一个值加上字符串

 

 

10 + "10";

 

10 + "";

 

10 + "hello";

 

 

 转换为数字

 

 在值的前 面使 用加号操作符

 

 

+“10”

 

 

 使 用减、乘、除、模操作符

 

 

“10” - 1; "hello" * 2;

 

 转换为布尔值

 

 在值的前 面使 !  操作符两次

 

 

!!"foo";

 

 

显式类型转换

 

 

强制转换成数字

 

 

parseInt() 函数

 

parseInt() 函数可解析 一个字符串 ,并返回 一个整数。

 

解析流程:

 

parseInt()  方法 首先查看字符串 中的第 一个字符,判断它是否是 一个有效的数字;如果不 是,该 方法将返回NaN,不 再继续执 其他操作。

 

但如果该字符是有效数字,该 方法将继续查看字符串 中的第 二个字符,进 同样的测试。

 

一过程将 一直持续,直到发现 非有效数字的字符为 止,此时 parseInt() 函数将把该 非有效字符之前的字符串 转换成数字。

 

var num = parseInt("12345px");//返回12345

 

var num1 = parseInt("0xA");

//10(0x开头的按 十六进制处理 。a为10,b为11...)

var num2

= parseInt("56.9");

//56

var num3

= parseInt("red");

//NaN

 

parseFloat() 函数

 

parseFloat() 函数可解析 一个字符串 ,并返回 一个浮点数。

 

解析流程:

 

parseFloat()  方法与 parseInt()  方法的处理  方式相似,从字符串 的第 一个字符开始查看,直到找到第 一个 非有效的字符为 止,然后把该字符之前的字符转换成数字。

 

如果参数字符串 的第 一个字符不 能被解析成为数字,则 parseFloat() 返回 NaN

 

 非有效字符指的是除了 正负号(+-)、数字(0-9)、 小数点、或者科学计数法中的指数(eE以外的字符。如果有两个 小数点,第 二个 小数点也会被看作“ 非有效字符

 

var fNum1 = parseFloat("12345red");//返回 12345

 

var fNum2 = parseFloat("0xA");//返回 NaN

 

var fNum3 = parseFloat("11.2");//返回 11.2

 

var fNum4 = parseFloat("11.22.33");//返回 11.22

 

var fNum5 = parseFloat("0102");//返回 102

 

var fNum1 = parseFloat("red");//返回 NaN

 

Number() 函数

 

使 Number() 函数,可以将任意类型的值转化成数字。

 

解析流程:

 

Number() 函数的强制类型转换与 parseInt()  parseFloat() 的处理  方式相似,只是它转换的是整个值, 而不 是部分值。

 

parseInt()  parseFloat() 只转换第 一个 无效字符之前的字符串 ,因此“1.2.3”将分别被转换为“1”“1.2”。但是 Number()  强制类型转换,“1.2.3”将返回NaN,因为整个字符串 值不 能转换成数字。

 

如果字符串 值能被完整的转换,Number() 将判断是调 parseInt() 还是 parseFloat()

 

Number() 函数关于原始类型值的转换规则:

 

数据类型

描述

例  子

 

 

 

数值

转换后还是原来的值

10 => 10

 

 

 

字符串

如果可以解析成数字,则转换成相应的数字,否则得到NaN。空字符

"10.01.1" =>

串 转为0。

NaN

 

 

 

 

布尔值

true 转为1,false 转为0

false => 0

 

 

 

undefined

转为 NaN

undefined =>

NaN

 

 

 

 

 

null

转为 0

null => 0

 

 

 

 

强制转换成字符串

 

String() 函数

 

使 String() 函数,可以将任意类型的值转化成字符串

 

String() 函数关于原始类型值的转换规则:

 

数据类型

描述

例  子

 

 

 

数值

转为相应的字符串

10 => "10"

 

 

 

字符串

转换后还是原来的值

"10.01.1" => "10.01.1"

 

 

 

布尔值

true 转为 "true",false 转为 "false"

false => "false"

 

 

 

undefined

转为 "undefined"

undefined => "undefined"

 

 

 

null

转为 "null"

null => "null"

 

 

 

 

强制转换成布尔值

 

Boolean() 函数

 

使 Boolean() 函数,可以将任意类型的变量 转为布尔值。

 

Boolean() 函数关于原始类型值的转换规则:

 

以下五个值的转化结果为false,其他的值全部为true

 

转换结果

 

 

undefined

false

 

 

null

false

 

 

0

false

 

 

NaN

false

 

 

""

false

 

 
posted @ 2017-07-16 23:26  曾许诺  阅读(200)  评论(0编辑  收藏  举报