Fork me on github

数据类型转换

JS 数据类型转换 方法主要有三种

转换函数、强制类型转换、利用js变量弱类型转换。

1.转换函数:

js提供了parseInt()和parseFloat()两个转换函数。前者把值转换成整数,后者把值转换成浮点数。只有对String类型调用这些方法,这两个函数才能正确运行;对其他类型返回的都是NaN(Not a Number)。

  • parseInt()

  parseInt 从左向右一位一位去查看,如果遇到一位是非数字的,结束执行,把这位之前的数字返回

  例如

var nub = "a100px";
nub = parseInt(nub);
console.log(nub,typeof nub);
//其中parseInt(要转换的数字,传进来的数字的进制);
//parseInt也常被用来取整
  • parseFloat  转换成小数(转换为浮点数)

  从左向右一位一位的匹配,直到遇到一个非数字(可以匹配一个小数点)就返回这位前边的数字

  例如

var nub = "12.234.34";
nub = parseFloat(nub);
console.log(nub);    

2. 强制类型转换

  或者显示类型转换

  • Nubmer (要转换的数字)

  从左向右看完所有的字符,如果完全符合数字的规则就转换,如果不符合数字的规则就返回NaN

  例如

var nub = "12.234";
nub = Number(nub);
console.log(nub);    
<script type="text/javascript">
var nub = false; // true = 1, false = 0;var nub; //NaNvar nub = null; //0var nub = document; //NaNvar nub = [10,2];//0
/*
    空数组 0
    空数组只有一位的时候,会用这位去转换,并且只转换数字和字符串,其他的都是NaN
    数组有多位,只会被转换成NaN
*/
var nub = function(){}; //NaN
nub = Number(nub);
console.log(nub);    
</script>

3.隐式类型转换

 浏览器自己进行转换,其他类型转换成数字,主要调去Number

  • number
    • +,+= 
    1. 当加号左右两侧有一位是字符串是,会把另外一侧也转成字符串;
    2. 使用+号时,两边没有字符串时,优先尝试把左右两侧都转换成数字,如果不能转换成数字就转换成字符串进行连接
    • -,*,/,%,-=,*=,/=,%=

  运算符左右两侧转换成数字进行运算    

  例如

<script type="text/javascript">
console.log(null + false,0 + function(){});
var nub = "20px";
var nub2 = "30px";
console.log(nub/nub2);
</script>
<script type="text/javascript">

// isNaN类型number
  //不等于任何数,也不等于它自己


var a = Number("10px");
var b = Number("10px");

alert( a == b)  //输出 false;

// isNaN(要检测的内容)如果转化结果是一个数字,就返回 false ,如果不是一个数字 就返回 true,会进行隐式类型转换,转换调用的方法是 number;
</script>
  • toString 转换成字符串
<script type="text/javascript">
var a = 123;
a = a.toString();
console.log(a,typeof a);
var b = ['','2'];
b = b.toString();
console.log(b,typeof b);
</script>

 

  • 布尔值
true 非空字符串 非0数字 非空对象 空数组  
false 空字符串 0 NaN null undefined


 

 

  • !取反 
<script type="text/javascript">
alert(!"21323");
alert(Boolean(123));    
</script>

 

posted @ 2017-05-13 00:57  vanst  阅读(277)  评论(0编辑  收藏  举报