js数据类型转换

ECMAScript中有5中基本数据类型:Undefined、Null、Boolean、Number和String,1种复杂数据类型Object.可以通过typeof操作符查看。
如:

var str = "String"
alert(typeof str)
alert(typeof(str))

字符串转整形

num = "0123"
> num = "0123"
'0123'
> Number(num)
123
> parseInt(num)
123
> parseInt("0x12")
18
> parseInt(" 12")
12
> parseInt("12hello")
12
> parseInt("hi12")
NaN
> parseInt("12.34")
12

Number和parseInt的区别就是parseInt可以根据相应的格式自动进行相应的进制转换(十进制或十六进制)。parseInt会忽略字符串前面的空格,一般更推荐使用parseInt
使用parseInt还可以指定基数,如:

> parseInt("10", 2)   //按二进制解析
2
> parseInt("10", 8)   //按八进制解析
8

字符串转浮点型

和parseInt不同,parseFloat只解析十进制,也不能指定基数。

> parseFloat("0xF")
0
> parseFloat("002")
2
> parseFloat("002.35")
2.35
> parseFloat("3.14e3")
3140
> parseFloat("3.14.15")
3.14
> parseFloat("3.14aaa")
3.14

其他类型转字符串

数值,布尔值,对象和字符串值都可以使用toString方法返回一个字符串,但null和undefined没有此方法。

> num.toString()
'10'
> num.toString(2)    //如果是数字可以传递基数
'1010'
> true.toString()
'true'
> "hello".toString()
'hello'

也可以使用String函数,该方法遵循以下规则:

  1. 如果有toString方法,则调用该方法(无参数)并返回相应结果
  2. 如果值是null,返回"null"
  3. 如果值是undefined,则返回"undefined"
> var value1;
undefined       //此处是上述命令的返回值,这里没有返回值
> var value2 = null;
undefined
> var value3 = true;
undefined
> String(value1)
'undefined'      //返回值为"undefined"
> String(value2)
'null'
> String(value3)
'true'

字符串转json

> jsdata = '{"data":[{"id":123, "name":"Joy"},{"id":124, "name":"Tony"}]}'
'{"data":[{"id":123, "name":"Joy"},{"id":124, "name":"Tony"}]}'
> JSON.parse(jsdata)
{ data: [ { id: 123, name: 'Joy' }, { id: 124, name: 'Tony' } ] }

json转字符串

> jsd = { data: [ { id: 123, name: 'Joy' }, { id: 124, name: 'Tony' } ] }
{ data: [ { id: 123, name: 'Joy' }, { id: 124, name: 'Tony' } ] }
> JSON.stringify(jsd)
'{"data":[{"id":123,"name":"Joy"},{"id":124,"name":"Tony"}]}'

上述方法都是将转换后的结果返回,而不会影响原来的值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值