JS数据类型
这部分主要讲基础的数据类型,概念性的较多,条例分类也比较清楚明了
ECMAScript:标准/核心
JS中的数据类型:number数字类型,string字符串类型,boolean布尔类型,function函数
类型,obj可以添加自定义属性的对象类型(object类型包括array,json,null等等),
undefined未定义类型
数据类型的相互转换:
Number();
var a1='+100';
alert(Number(a1));//100
var a1='';
alert(Number(a1))//0
var a1=true;
alert(Number(a1))//1 false->0
var a1=function(){alert(a)};
alert(Number(a1))//NaN
var a1=[];
alert(Number(a1))//0
var a1=['123'];
alert(Number(a1))//123
var a1=['1','2','3'];
alert(Number(a1))//NaN
var json={abc:123};
alert(Number(json))//NaN
var json={};
alert(Number(json))//NaN
var a1=null;
alert(Number(a1))//0
var a1=undefined;
alert(Number(a1))//NaN
parseInt();
遇到非数字的东西就不再转换了
var a='100px';
alert(parseInt(a));//100
alert(parseInt(a,10))--按照十进制转换,更保险一些
var a=true;
alert(parseInt(a))//NaN
parseFloat();
从左往右转,认识一个小数点
var a='12.5万元';
alert(parseFloat(a)) //12.5
用if条件句看parseInt(num)和parseFloat(num)是否相等判断num是整数还是小数
以上三种是显式类型转换(强制类型转换)
隐式类型转换
-*/%可以让字符串变成数字
++,--可以让字符串变成数字
><可以让字符串变成数字
+可以让数字变成字符串
!取反布尔值
==
以上如果转不出就会输出NaN
alert('200'-5)//195
alert('10'>'9')//false数字之间的比较和字符串之间的比较不同
alert(!true)//false
alert(!'ok')//false
alert('2'==2)//false
NaN:not a number不是一个数字-->typeof是一个数字类型--数字和数字类型是两回事儿
一旦程序出现NaN肯定进行了非法运算操作;
布尔值属于假,NaN和NaN自己不相等
isNaN()方法 is not a number是不是不是一个数字,帮助判断某些值是不是数字类型
内部根据Number()来转换,根据Number转换的结果来返回结果
数字->false;
非数字->true