开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第22天,点击查看活动详情
显示类型转换
- Number()
var a = '123';
console.log(typeof(Number(a)) + '-' + Number(a)); //number-123
//当改变变量为字符串true时,Number(a)就会输出NaN
var a = 'true';
console.log(typeof(Number(a)) + '-' + Number(a)); //number-NaN
var a = true;
console.log(typeof(Number(a)) + '-' + Number(a)); //number-1
var a = false;
console.log(typeof(Number(a)) + '-' + Number(a)); //number-0
var a = null;
console.log(typeof(Number(a)) + '-' + Number(a)); //number-0
var a = '1a';
console.log(typeof(Number(a)) + '-' + Number(a)); //number-NaN
var a = '3.14';
console.log(typeof(Number(a)) + '-' + Number(a)); //number-3.14
- parseInt()
他只想转化成整形,所以只能作用于数字类型,其他类型均会转为NaN
var a = '123';
console.log(typeof(parseInt(a)) + '-' + parseInt(a)); //number-123
var a = true;
console.log(typeof(parseInt(a)) + '-' + parseInt(a)); //number-NaN
var a = false;
console.log(typeof(parseInt(a)) + '-' + parseInt(a)); //number-NaN
var a = null;
console.log(typeof(parseInt(a)) + '-' + parseInt(a)); //number-NaN
var a = undefined;
console.log(typeof(parseInt(a)) + '-' + parseInt(a)); //number-NaN
var a = NaN;
console.log(typeof(parseInt(a)) + '-' + parseInt(a)); //number-NaN
var a = '3.99';
console.log(typeof(parseInt(a)) + '-' + parseInt(a)); //number-3
- parseFloat()、toFiexd()
console.log(parseFloat('3.1415925')) //3
var num = parseFloat('3.1465925');
//保留两位小数,可以用toFiexd(),四舍五入
console.log(num.toFixed(2));//3.15
- String
console.log(String(123)); //123
console.log(typeof(String(123))); //String
- Boolean
console.log(Boolean(1)); //true
console.log(Boolean(null)); //false
console.log(Boolean(undefined)); //false
console.log(Boolean(NaN)); //false
console.log(Boolean("")); //false
console.log(Boolean(0)); //false
console.log(Boolean(false)); //false
//总结一下 null undefined NaN "" 0 false这些为false,其他就是true了
隐式类型转换
var a = '123';//Number(a)
a++;
console.log(a);//1234
var a = "a" + 1;// Strimg(1)
console.log(a);//a1
var a = '3' * 2; //Number(3)
console.log(a);//6
var a = '1' > 2; //number(1)
console.log(a); //false
var a = 1 > '2'; //number(2)
console.log(a); //false
// > < >= <= //都要进行number转换
var a = 1 != '2'; //都是先转换成数字就行
console.log(a);//true
var a = 1 === '1';//这个不进行隐式转换
console.log(a);//false
var a = NaN == NaN; //NaN不等于任何东西
console.log(a);//false
var a = 2 > 1 > 3;
console.log(a);//false
var a = 2 > 1 == 1;
console.log(a);//true
var a = undefined < 0;
console.log(a);//false
var a = undefined == 0;
console.log(a);//false