jq 变成数字类型_JavaScript学习笔记——数据类型转换

c540c69a1e3db4f2d4abe9ae04913049.png

一、显式类型转换(强制类型转换):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

306e4dabc0ab3573465b5d70117d7cd4.png

作者:齐在

链接:JavaScript学习笔记--数据类型转换_齐在的专栏-CSDN博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值