JavaScript深度指南(非常全)-入门学习5

71 阅读1分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 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