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 //NaN
null-->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 = false
console.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))