一、js数据类型
1、typeof判断数据类型 var i=1;alert(typeof i) //number
2、number数字类型,可以进行+,-,*,/等运算(包括NaN)
3、string 字符串类型,例如var a=" abc ";
- 可以获取字符串的长度(字符串的长度包括空格) alert(a.length;) //5
- 获取某一个子字符串 alert(a.charAT(1)) //a
4、boolean布尔值:true,false
5、函数类型
6、object对象类型,可以添加自定义属性:window,document,数组,json,null(不可以添加自定义属性)
7、undefined未定义
二、数据类型转换
1、字符串转换成数字类型
(1)显式类型转化(强制类型转化):Number();parseInt();parseFloat();
var a="100";
var b="";
var c=true;
var d=function(){alert(1)};
var e=[];
var f=[123];
var g=[1,2,3];
var json={abc:123};
var h=null;
var i;(undefined);
- Number(a) //100
- Number(b) //0
- Number(c) //1
- Number(d) //NaN
- Number(e) //0
- Number(f) //123
- Number(g) //NaN
- Number(json) //NaN
- Number(h) //0
- Number(i) //NaN
var j="100px";
var k="12.34元"
- parseInt(j) //100 从左到右依次转换,适合转换带有数字的字符串,开头以+,-,*,/, ,也可以被转化
- Number(j) //NaN
- parseInt(k) //12
- parseFloat(k) //12.34 识别小数点
- parseInt(j,10) 10表示用10进制转
(2)隐式类型转化:-,*,/,%,++,--,>,<,!(取反),==,
alert("10">9) //true
alert("10">"9") //false
alert(!"ok") //false
alert("2"==2) //true
alert("2"===2) //false 没有隐式类型转化作用
(3)NaN:not a number 不是个数字的数字类型,一旦写程序中出现:NaN,肯定进行了非法的运算操作
- 作为if判断是false
- NaN与自己做比较结果为false alert(NaN==NaN) //false
isNaN 判断某些值是不是数字,不喜欢数字
- alert(isNaN(2));结果为false;
- alert(isNaN(我爱你));结果为true;
- alert(isNaN("250"));结果为false; 原理:先用Number()进行转化,结果为数字,isNaN为false;如果结果为NaN,isNaN为true;只讨厌数字,不是讨厌数字类型