显示类型 隐式类型转换 及NaN详解

fwxstar 2018-06-04 602次浏览

摘要: 显示类型转换    Number();    parseInt();    parseFloat();隐式类型转换    + &nbs...

显示类型转换

    Number();

    parseInt();

    parseFloat();


隐式类型转换

    +   200+"3"  2003   变成字符串

    - * / % "200"-3 197 变成数字

    ++ -- 变成数字

    >  <  数字比较还是字符串比较  “10”>9=>true  "10">"9"=>false

    !取反   把右边变成布尔值

    ==


NaN详解

var a = Number("abc"); //NaN
typeof(a); //number   NaN 不是数字的数字类型
a === a  //false


isNaN() 

通过Number转型函数判断是否是数字 true=>不是数字  false=>是数字


一个小测验

  var arr = [ '100px', 'abc'-6, [], -98765, 34, -2, 0, '300', , function(){alert(1);}, null, document, [], true, '200px'-30,'23.45元', 5, Number('abc'), function(){ alert(3); }, 'xyz'-90 ];

//         1、找到arr里所有的数字:-98765, 34, -2, 0, 5
//         2、找到可以转成数字的:'100px', -98765, 34, -2, 0, '300', '23.45元',  5
//         3、把转成数字以后,最大值判断出来:300
//         4、把 NaN 所在的位置找出来:1 14 17  19

        var a1=[];
        for(var i=0;i<arr.length;i++){
//           1. if(typeof arr[i] === "number" && !isNaN(arr[i])){
//                console.log(arr[i]);
//            }
//           2. if(parseInt(arr[i]) || parseInt(arr[i])==0){
//                console.log(arr[i]);
//            }
//           3.if(parseInt(arr[i]) || parseInt(arr[i])==0){
//                a1.push(parseInt(arr[i]));
//           }
//           4.if(typeof arr[i] === "number" && isNaN(arr[i])){
//                console.log(i);
//            }
        }
        console.log( Math.max.apply(null,a1)); //(第三点)