JavaScript学习笔记——数据类型转换

一、显式类型转换(强制类型转换):Number()、parseInt()、parseFloat()等

1.Number():Number()方法能将看起来像数字的字符串变成数字,将true转换为1,false转换为0;尽可能地转换。当遇到函数时,Number()方法无法对其转换,将输出NaN。

var a='100';
alert(a+100);//输出  100100
alert(Number(a)+100);//输出  200
  
var a='0000100';//如果100前面很多0
alert(a+100);//输出  0000100100
alert(Number(a)+100);//输出  200  

var a='+100';
alert(a+100);//输出  +100100
alert(Number(a)+100);//输出  200  

var a='';
alert(a+100);//输出  100
alert(Number(a)+100);//输出  100 

var a=' ';
alert(a);//输出一个空格
alert(Number(a));//输出  0 

var a=true;
alert(a);//输出 true   
alert(Number(a));//输出  1 	
	
var a=[];//数组为空
alert(a);//无输出
alert(Number(a));//输出  0 

var a=[''];//数组里面有空字符串
alert(a);//无输出
alert(Number(a));//输出  0 	

var a=[123];
alert(a);//输出  123	
alert(Number(a));//输出  123	

var a=[1,2,3];
alert(a);//输出 [1,2,3]
alert(Number(a));//输出 NaN

var a=null;
alert(a);//输出 null
alert(Number(a));//输出 0	

var a=function(){alert(1)};	
alert(a);//输出  function(){alert(1)}
alert(Number(a));//输出 NaN
	
var json={abc:123};//只要是json类型,就转化不了
alert(json);//输出 [object Object]
alert(Number(json));//输出 NaN	
	

var a;
alert(a);//输出 undefined
alert(Number(a));//输出 NaN	

2.ParseInt():parseInt()从左到右一个一个转换,遇到一个非数字的东西,就不再转化了。但是无法转换true/false等其他类型。parseInt()认+-和空格,如果遇到,也认为是数字的一部分,也会继续往后走。

var a='100px1564623';//parseInt()从左到右一个一个转换,遇到一个非数字的东西,就不再转化了。但是无法转换true/false等其他类型。parseInt()认+-和空格,如果遇到,也认为是数字的一部分,也会继续往后走。
alert(parseInt(a));//输出  100
alert(parseInt(a,16));//输出 256.将a看成16进制,转换为十进制的数字。默认情况下按十进制转。

var a='12.34元';
alert(parseInt(a));//输出  12

3. ParseFloat():遇到小数点可以使用该方法。

//这时,可以使用方法parseFloat()
alert(parseFloat(a));//输出12.34

二、隐式类型转换:

1. +。   如‘200’+3  变成字符串

2. - * / %  比如‘200’-3  变成数字

3. ++ -- 变成数字 

4. a++、a--

5. ><   数字的比较和字符串的比较不同

6. !取反  把右边的数据类型转成布尔值

7. ==  

alert('200'+3);//输出2003
alert('200'-3);//输出197

var a='10';
a++;
alert(a);//输出11

alert('10'>9);//字符串和数字比较,进行了强制类型转换。输出true
alert('10'>'9');//输出false 两个字符串在比较时,是按其字符编码进行比较的。按每一数字位进行比较,1<9,所以为false
alert('10000'>'9');//此时,输出还是为false

alert(!'ok');//!取反  把右边的数据类型转成布尔值

alert('2'==2);//输出 true

三、NaN

定义:not a number不是个数字。不是个数字的数字类型。

所有的数字都是数字类型,但并不是所有的数字类型都是数字。数字和数字类型是两码事。

1. 一旦写程序中出现了NaN,那么肯定进行了非法的运算操作。

var a=Number('abc');
alert(typeof a);//输出number,说明类型为number
alert(a);//输出NaN

2. NaN的布尔值是false。

if(a){//此时输出为false。NaN转换布尔值是false
	alert('真');	
}
else {
	alert('假');	
}

3. 两个NaN并不相等。Nan与自己比较时假。所有数据类型除了NaN以外,其他自己与自己比较都是真。

alert(NaN==NaN);//输出false

isNaN():is not a number 。是否不是一个数字。帮助判断某些值是不是数字。可能值true/false。内部是根据Number()进行转换,如果能够转成一个数字,那么isNaN()输出false,否则输出true。

alert(isNaN(240));//输出false
alert(isNaN('wo'));//输出true

 

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值