JavaScript类型转换

JavaScript类型转换
转换为字符串数字布尔值对象
undefined"undefined"NaNfalsethrows TypeError
null"null"0falsethrows TypeError
true"true"1
new Boolean(true)
false"false"0
new Boolean(false)
""(空字符串)
0falsenew String("")
"1.2"(非空,数字)
1.2truenew String("1.2")
"one"(非空,非数字)
NaNtruenew String("one")
0"0"
falsenew Number(0)
-0"0"
falsenew Number(-0)
NaN"NaN"
falsenew Number(NaN)
Infinity"Infinity"
truenew Number(Infinity)
-Infinity"-Infinity"
truenew Number(-Infinity)
1(无穷大,非零)"1"
truenew Number(1)
{ }(任意对象)

true
[ ](任意数组)""0true
[9](1个数字元素)"9"9true
['a'](其他数组)使用join()方法NaNtrue
function(){}(任意函数)
NaNtrue





因为JavaScript可以做灵活的类型转换,因此其“==”相等运算符也随相等的含义灵活多变。

null==undefined 
"0"==0  //在比较之前字符串转换成数字
0==false //在比较之前布尔转换成数字
"0"==false //在比较之前字符串和布尔值都转换成数字

除了undefined和null之外的任何值都具有toString()方法。如果把undefined和null转换为对象,会报异常。但是用Object()函数不会抛出异常,简单返回一个新创建的空对象。

如果“+”运算符的一个操作数是字符串,将会把另一个操作符转为字符串。一元“+”运算符将其操作数转化为数字。一元!将其操作数转化为布尔值并取反。

x+""  //等价于String(x)
+x    //等价于Number(x),也可写成x-0
!!x   //等价于Boolean(x)

Number类定义的toString()方法可以接收表示转换基数的可选参数。

toFixed()根据小数点后的指定位数将数字转换为字符串;toExponential()使用指数记数法将数字转换为指数形式的字符串,小数点前只有一位,小数点后的位数由参数指定;toPrecision()根据指定的有效数字位数将数字转换成字符串,如果有效数字的位数少于数字整数部分的位数,则转换成指数形式。

parseInt()函数和parseFloat()函数是全局函数,不从属于任何类的方法。都会跳过任意数量的空格前导,尽可能多的解析数值字符,并忽略后面的内容。如果第一个飞空格字符是非法的数字直接量,将最终返回NaN。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值