1、string、Boolean—>number
1-1 string—>number
// tip:a.只能识别纯数字的字符串,其他字符输出NaN b.""," "识别成0 c.parseInt("12px") parseFloat("12.123px") var str = "3"; var num = Number(str); console.log(typeof num); console.log(Number("3.0")); console.log(Number("3.00")) console.log(Number("3px")) // NaN
1-2 boolean—>number
var a= true;var b= false;console.log(Number(a))console.log(Number(b))
1-3 undefined,null和对象—>number
undefined-->number //NaNnull-->number //0对象-->number //NaN
总结: (1)数字的转换结果有三种: 数字, 0 , NaN(2)其他类型转数字类型的时候, 就拿这三种结果区推断, 会是那一个
2 、string、number—>Boolean
// string转化为Boolean// 特点:""为false,其他为true var str = "hello world" var s = " " var t = "" console.log(Boolean(str)) console.log(Boolean(s)) console.log(Boolean(t))// number转化为Boolean// 特点:0为false,其他为true var num = 2,m = -2,n = 0 console.log(Boolean(num),Boolean(m),Boolean(n))
总结:- 转换方法 Boolean(变量)或者 !!变量- 意思上若包含'无','空'的时候转为false,其他为true- 对象全部为true
3、number、boolean转换为string
var num = 1,boolean = falseconsole.log(String(num))console.log(boolean.toString(num))
4、不是纯数字的字符串转换number
/* 12px parseInt -- number parseFloat -- 小数点 */ console.log(parseInt("12px")) console.log(parseFloat("12.123px"))
5、undefined和NaN
/* Number --> 0; string --> ""; undefined NaN*/ var a; console.log(Boolean(a)) // NaN console.log(Boolean(NaN))