用输出的方式倒逼自己输入。
显式类型转换
Number(mix)
将传入的参数转换成数字。
console.log(Number(123)); //123
console.log(Number(-123)); //-123
console.log(Number("123")); //123
console.log(Number("-123")); //-123
console.log(Number("123a")); //NaN
console.log(Number("-123a")); //NaN
console.log(Number(true)); //1
console.log(Number(false)); //0
console.log(Number(undefined)); //NaN
console.log(Number(null)); // 0
不会进行截断操作。如"123abc"会转成NaN,而不是123。
undefined会转成NaN。
null会转成0。
调用Number方法转完之后一定是数字类型。
let a = Number(undefined);
console.log(typeof(a) + ":" + a); //number:NaN
parseInt(string,radix)
parseInt有两个参数, string : 需要被解析的字符串 radix :可选,要解析的数据的基数 将其他进制转换成10进制。
console.log(parseInt("123abc")); //123
console.log(parseInt("123.9")); //123
console.log(parseInt("a123.9")); //NaN
console.log(parseInt(null)); // NaN
console.log(parseInt(undefined)); // NaN
console.log(parseInt("10",16)); // 16
会有截断操作,只保留数字部分。
常用操作,需要对像素进行操作时,50px只需要取50的值时
console.log(parseInt("50px")); // 50
parseFloat
与parseInt类似,只有一个参数,会将参数转换成浮点类型。
console.log(parseFloat("123.12")); //123.12
console.log(parseFloat("123")); // 123
console.log(parseFloat("123.123adf")) // 123.123
console.log(parseFloat(null)); // NaN
console.log(parseFloat(undefined)); // NaN
String(mix)
任何参数都会转换成字符串。
console.log(String(null)); //"null"
实际应用中,使用+""会更多。
console.log(null + "") // "null"
Boolena()
将参数转换成boolean类型,true 或 false 。
只有0,-0,null,undefined,NaN,false,会转换成false,其他的所有值,都会转换成true。
包括{},[],或者字符串的"false"。
toString(radix)
可选。规定表示数字的基数,使 2 ~ 36 之间的整数。若省略该参数,则使用基数 10。但是要注意,如果该参数是 10 以外的其他值,则 ECMAScript 标准允许实现返回任意值。
用法和上面几个不同。
NumberObject.toString(radix)
当不带参数时,结果和调用String方法类似,一般尽量使用String进行转换操作。
注意:undefinde和null没有toString方法,会报错。
当有参数时,将10进制转换成其他进制
如:将2进制转换成16进制
先转换成10进制,再从10进制转换成16进制
var num = 10000
var test = parseInt(num, 2)
console.log(test.toString(16))
隐式类型转换
isNaN()
先调用Number()方法,再和NaN比较
console.log(isNaN("NaN")); // true
console.log(isNaN("abc")); // true
let a = "abc";
a1 = Number(a);
//再看a1的结果是不是 `NaN`
++/-- +/-(一元正负)
调用Number方法
+(加号)
当加号两侧有一个字符串,会调用String。
console.log("a" + 1); //a1
- * / %
减号,乘号,除号,摩尔
调用Number方法
&& || !
调用Boolean。
< > <= >=
有数字,会调用Number。
== !=
undefined > 0 //false
undefined < 0 //false
undefined == 0 //false
null > 0 //false
null < 0 //false
null == 0 //false
undefined == null //true
NaN == NaN //false