js数据类型:数字(NaN)、字符串、布尔、函数、对象、数组、json、null、undefined(未定义)
- typeof判断数据类型
var i=100;
alert(typeof i);//number
var s=‘ miao’;
alert(typeof s);//string
alert(s.length);//5 空格也算一位
var obj=window;
alert(typeof obj); //object
obj.abc=123; //只要不是空的都可以添加自定义属性
alert(obj.abc);//123
?obj.fn1=function(){ alert(1);};
obj.fn1();//调用函数
⭐数组arr 也是个对象
alert(typeof arr);//object
var json={name:‘miaov’,age:5};
alert(json.name);// miaov
alert(typeof json);//object
var n=null;
alert(typeof n);//object 虽然是object,但是它不存在,无法添加函数属性等
var u;
alert(typeof u);//undefined
未定义
- charAt()//根据下标获取字符串中的元素
var s=‘ miao’;
alert(s.charAt(3));//a
- 数据类型转换Number()方法
法一:Number();//可以直接用的方法,使‘100‘、‘00100’、‘+100‘等的字符串转化为100。
Number(‘ ‘);//0
Number(true);//1
Number(false);//0
var a=[]; var a=[‘‘];
Number(a);//0
var a=[123]; var a=[‘123’];
Number(a);//123
但是var a=[1,2,3]; 转成NaN
Number·(null);//0
Number(undefined);//NaN
- parseInt与parseFloat
var b=’100px’;
alert(parseInt(b));//100
转换原理,从左到右识别数字,遇到非数字就从当前非数字处全部截断
var b=’+100px’;
alert(parseInt(b));//100
而且parseInt也认识一些简单的符号,例如+ - 空格等
var b=’12.34元’;
alert(parseInt(b));//12
⭐parseInt的完整写法:parseInt(b,10);默认按照十进制来转的,也可以写成parseInt(b,2)按照二进制来转,或者8、16进制等
var b=’12.34元’;
alert(parseFloat(b));//12.34
小技巧:
if(parseInt(num)==parseFloat(num)){
alert(num是整数);
}else{
alert(num是小数);
}
- 两种类型转换
形如Number()、parseInt()、parseFloat()这些看得见摸得着的转换方式称为显示类型转换(强制类型转换),
?隐式类型转换:
+: 200+’3’ 变成字符串2003
-*/ %: ‘200‘-3 :可以将字符串变为数字
var a=‘10‘ a++; //a变为数字11
++ – 可以变为数字
< > <= >= 转法比较诡异
‘10‘ > 9 //true ‘10’会自动转为数字10
而 ‘10’ > ‘9’ 是字符串比较,一位一位比较ASC码,返回false
- 取反符号 !
alert(!100);//false
alert(!‘ok‘);// false
- == 与 ===
⭐==:两个等号判断值
===:三个等号,全等,先判断类型,再判断值
alert(‘2‘==2);//true
alert(‘2‘===2);//false
- NaN :not a number(不是数字)数字肯定是数字类型,但是数字类型不一定都是数字
var a=Number(‘abc’);// a是NaN
alert(typeof a);// NaN
说明NaN指一个不是数字的数字类型
一旦写程序中出现NaN,代表肯定进行了非法运算
NaN在布尔值中是false
alert(a===a);//false
NaN与自己都不相等
- isNaN();is not a number可以判断某些值是不是数字
不是返回true 是返回false
alert(isNaN(‘xssxs’));//true
alert(isNaN(123)); //false
⭐isNaN(),将括号内容交给Number,若Numver成功转为数字,则isNaN返回false,若Number转为NaN,则isNaN为true
应用:判断文本框内容是不是数字
if(isNaN(str)){
alert(‘不是数字’);
}else{
alert(‘是数字’);
}