在javascript的实际编码中,经常会有意无意的用到数据类型转换。

先看一段代码实例:
   [ bootstrap ] 运行代码    下载代码
<script>
var str="5";
var num=5;
console.log(str+num);
</script>
由上面代码的运行结果可以看出,数字被转换为字符串类型,然后再进行字符串连接,使用的隐式转换。

下面就分别介绍一下javascript中数据的隐式转换和显示转换。

javascript中的数据类型是松散的,并不像c#或者java中的数据是强类型的,看如下代码:
   [ bootstrap ] 运行代码    下载代码
<script>
var num = 5;
num = "softwhy.com";
num = {};
</script>
在上面的代码中,首先声明一个变量,兵赋值为数字5,这个时候变量就是数值类型的。

然后变量num被重新赋值为字符串,这个时候变量就变成字符串类型。

最后变量又被重新赋值为一个对象直接量,这个时候变量又成为一个引用类型的数据。

但是在实际应用中,要尽量避免上面的类似操作。

一.显式转换:

所谓的显式转换就是人为的方式对数据进行类型转换。

1.转换为数值类型:Number(mix)、parseInt(string,radix)、parseFloat(string)。

2.转换为字符串类型:toString(radix)、String(mix)。

3.Boolean(mix)。

下面分别对上面的几种转的规则进行一下介绍:

Number()函数:

(1).如果参数是布尔值,true的话,返回值是1,是false,则返回0.

(2).如果参数是数值类型,则直接返回此数字。

(3).如果参数是null,则返回值是0.

(4).如果参数是undefined,则返回值是NaN。

(5).如果参数是字符串类型的,那么还要分如下情况:      

        如果字符串只包含数字,则此函数会将其转换为十进制数字。

        如果是空字符串,则此函数会将其转换为0。

        如果字符串非以上格式,那么返回值是NaN。

(6).如果是对象,则调用对象的valueOf()方法,然后依据前面的规则转换返回的值。

         如果转换的结果是NaN,则调用对象的toString()方法,再次依照前面的规则转换返回的字符串值。

         各种对象调用valueOf()方法返回值规则如下:

         1).数组:数组元素被转转换为字符串,并且之间用逗号连接。

         2).布尔对象:返回true或者false。

         3).Date对象:返回是时间戳。

         4).Function对象:返回函数本身。

         5).Number对象:返回数字字面量。

         6).Object对象:返回对象本身。

         7).String对象:返回字符串字面量。

代码实例:
   [ bootstrap ] 运行代码    下载代码
<script>
console.log(Number(true));
console.log(Number(5));
console.log(Number(null));
console.log(Number(undefined));
console.log(Number("60"));
console.log(Number(""));
console.log(Number("60d"));
console.log(Number([1,2,3]));
</script>
parseInt(string, radix)函数:

此函数可以将字符串转换为数字。

它的转换规则这里就不多介绍了,具体可以参阅javascript parseInt()一章节。

parseFloat(string)函数:

此函数的转换规则和parseInt()函数基本是相同的,但是也有如下区别:

(1).此函数不会对十六进制或者八进制字面量字符串参数进行转换,只当作普通字符串处理。

(2).字符串中的第一个小数点会被当作浮点数正常处理。

toString(radix)方法:

对象都具有toString()方法,下面介绍一下各种对象的调用此方法的返回值:

(1).Array对象:将数组元素用逗号连接起来返回一个字符串。

(2).Boolean对象:返回"true"或者"false"。

(3).Date对象:返回一个时间日期的字符串。

(4).Error对象:返回一个包含相关错误信息的字符串。

(5).函数对象:返回函数体本身。

(6).Number对象:返回对应的数字字符串。

(7).String对象:返回字符串直接量。

代码实例:
   [ bootstrap ] 运行代码    下载代码
<script>
var num=new Number(100);
var arr=[1,2,3,4,5];
function func(){
  var y=x+z;
}
console.log(num.toString(16))
console.log(arr.toString())
console.log(func.toString())
</script>
String()函数:

此函数可以将任何类型的值转换为字符串,规则如下:

(1).如果有toString()方法,则调用该方法,并返回结果。

(2).如果是null,返回”null”。

(3).如果是undefined,返回”undefined”。

代码实例:
   [ bootstrap ] 运行代码    下载代码
<script>
var num=new Number(100);
var arr=[1,2,3,4,5];
console.log(String(num))
console.log(String(arr))
</script>

代码描述:javascript数据类型 隐式和显式转换。javascript数据类型隐式和显式转换源码下载



106 142



用户评论
大牛,别默默的看了,快登录帮我点评一下吧!:)      登录 | 注册



×
×
51前端

注册

×
绑定手机

请绑定手机号,在继续操作

×
单次下载支付

应付金额:279

支付完成后,回到下载页面,在进行下载

官方QQ群
意见反馈
qq群

扫描上面二维码加微信群

官方QQ群

jQuery/js讨论群
群号:642649996
Css3+Html5讨论群
群号:322131262

加群请备注:从官网了解到