JS--显示类型转换Number—隐式类型转换

时间:2021-10-05 02:41:34

显示类型转换 (强制类型转换):
Number()
parseInt()
parseFloat()

Number是整体转换--能够把一个看起来像数字的字符串转成数字--尽量去转换能转的都转了

var a = "+100";
alert( a+100 ); // "100100"
alert(Number(a)); // 100
var a1 = "";
alert( Number(a1) ); //
var a2 = true;
alert( Number(a2) ); //true -> 1 false -> 0
var a3 = []; //[""] [123] ["123"] [1,2,3]
alert( Number(a3) ); // 0 0 123 123 NaN
var a4 = null;
alert( Number(a4) ); //

parseInt从左到右一个一个转换,碰到非数字的东西就不转了 只能转像->字符串 前面符号/空格也是认的 

var b = "100px"; // "-100" "00100" "10.6"
alert( parseInt(b) ); // 100 -100 100 10
alert( parseInt(b,10) ); // b,10 是按进制转换--默认是10进制

parseFloat可以转换小数

var c = "12.34元"; // "12.3.4"
alert( parseFloat(c) ); // 12.34 12.3

判断某一个值是整数还是小数

var num = "200";
if( parseInt(num) == parseFloat(num) ){
alert( num + "是整数" );
}else{
alert( num + "是小数" );
}

Number 中的 NaN

var json = { abc:123 };
alert( Number(json) ); // NaN 只要是json的就转不了 var a5;
alert( Number(a5) ); // NaN var a3 = function(){ alert(1); };
alert( Number(a3) ); // NaN

隐式类型转换:
+ 200 + "3" --> 2003 变成字符串
- * / % "200"-3 --> 197 变成数字
++ -- 变成数字
> < 数字的比较、字符串的比较
! 取反 把右边的数据类型转成布尔值
==

var a = "10";
a++;
alert( a ); // alert( "10" > 9 ); // true
alert( "10" > "9" ); // fasle 字符串比较 比较一位一位的字符
//数字的比较与字符串的比较
//"10" "9" alert( !true ); // false alert( "2" == 2 ); // true 判断最终的值
alert( "2" === 2 ); // false 先去判断类型 再去判断值 alert( Number("......") ); // NaN
alert( "......"-9 ); // NaN