如何转换为number?
number('1') ===1
parseInt('1',10) ===1 //第二个参数指定返回什么进制的数值,默认十进制
parseFloat('1.43') === 1.43
'1' - 0 === 1 //减0可以返回数值类型
- '1' (或者 -'1') ===1
如果引号中需要转换的值不是一个有效的字符串,就会返回NaN(not a number)
parse解析
重点是parseInt
parseInt默认是转换为十进制,遇到无法转换的字符时立刻结束,所以在下面情况的时候
parseInt('011') === 11 转换形如八进制的字符串会返回0之后的数值
parseInt('1a') === 1
parseInt('a1') === NaN 遇到a无法解析的马上结束
如何转换为string?
toString()
number toString() 会变为字符串"数字"
var a = 3;
a.toString() //"3"
boolean toString() 会转换为字符串"true","false"
var a = 4>3;
a.toString() //"true"
null toString() 会报错,因为null没有toString() 的属性
var a = null;
a.toString() //Uncaught TypeError: Cannot read property 'toString' of null
undefined toString() 会报错,因为undefined也没有toString() 的属性
var a = undefined;
a.toString() //Uncaught TypeError: Cannot read property 'toString' of undefined
object toString() 会返回"[object Object]"
var obj={name:"jianshu"}
obj.toString() //"[object Object]"
+ '' (推荐使用的方式)
1 + '' //"1"
true + '' //"true"
var obj = {}
obj + '' //"[object Object]"
'' + null //"null"
'' + undefined // "undefined"
String()
String()是一个全局方法
如何转换为boolean?
Boolean()
Boolean(1) //true
Boolean(2) //true
Boolean(0) //false 零表示没有,是false
Boolean("") //false 空字符串是false
Boolean(" ") //true 空格也算字符,是true
Boolean(null) //false
Boolean(undefined) //false
Boolean({}) //true 空对象也是true
!! 取反两次
!! 1 //true
!! 0 //false
!! '' //false
!! ' ' //true
!! {} //true
!! null //false
!! undefined //false
<注意>转换为布尔类型只有以下五个为false
0、NaN、空字符串''("")、null、undefined
五个falsy值