js数据类型
1.JS中的数据类型:数字、字符串、布尔值、函数、对象(obj、[]、{}、null)、未定义
typeof判断数据类型
eg:var i=100; alert(typeof i);
2.数据类型转换
(1)字符串转换成数字
Number(); 只能转换纯数字的字符串,包含非数字时不能转
//字符串
var a='100';
alert(Number(a)); //100
var a1='0000100';
alert(Number(a1)); //100
var a2='+100';
alert(Number(a2)); //100
var a3='';
alert(Number(a3));//0
var a4=' ';
alert(Number(a4));//0
//布尔值
var a5=true;
alert(Number(a5));//true=>1,false=>0
//数组
var a8=[];
alert(Number(a8));//0
//空
var a10=null;
alert(Number(a10));//0
///////////////////////////////////////////////////////////////////////////////////////
//对象
var a6=function(){alert(1);};
alert(Number(a6));//NaN
var a7=json{abc:123};
alert(Number(a7));//NaN
var a9=[1,2,3];
alert(Number(a9));//NaN
var a4=undefind;
alert(Number(a4));//NaN
parseInt();
整形转换;
从左向右转换遇到非数字停止转换;
只能转换字符串类的数字;
var b='100px123456789'; alert(parseInt(b));//100
var b='dgdg100px123456789'; alert(parseInt(b));//NaN
var b='100px123456789'; alert(parseInt(b,10));//按十进制转换
alert(parseInt(b,2));//按二进制转换
alert(parseInt(b,16));//按十六进制转换
parseFloat();
浮点数转换
parseInt()与parseFloat()妙用
//判断一个数是正数还是小数
var num="100";
if(parseIn(num)==parseFloat(num)){
alert('num是一个正数’);
}else{
alert('num是一个小数’);
}
(2)隐式数据类型转换
//减、乘、除、取模可以把字符串类的数字转换成数字
alert('200'-3); //107
//加号
alert(200+'1'); //2001 把数字转换成了字符串
//++、--
var a='10';
a++;
alert(a); //11 a被转换成了数字
//> <
alert('10'>9); //true;转换成了数字比较
alert('10'>'9'); //false;转换成了字符串比较
//!取反
alert(!'ok'); //false
//==先转换再判断
alert('2'==2); //true
//===不发生转换,先判断类型
alert('2'===2); //false
(3)NaN
NaN:not a number 不是个数字的数字类型
//一旦写程序中出现:NaN肯定进行了非法的运算操作
alert('200px'-100);
//NaN是false
//NaN和自身不相等
(4)isNaN()
isNaN:is not a number 不是数字
判断某些值是不是数字,不是数字返回true,是数字返回false
alert(isNaN(2)); //false
//isNaN()判断时先使用Number()进行转换,然后再进行判断
alert(isNaN('265')); //false
(5)应用
根据给出的数组按条件查找符合条件的元素
HTML部分
<p>'100px','abc'-6,[],-98765,34,-2,0,'300',,function(){alert(1);},null,document,[],true,'200px'-30,'23.45元',5,Number('abc'),function(){alert(3);}</p>
<input type="button" name="" id="" value="找到所有数字" />
<input type="button" name="" id="" value="找到可以转换成数字的" />
<input type="button" name="" id="" value="判断转换后的数字的最大值" />
<input type="button" name="" id="" value="NaN所在的位置" />
<div></div>
JS部分
var arr=['100px','abc'-6,[],-98765,34,-2,0,'300',,function(){alert(1);},null,document,[],true,'200px'-30,'23.45元',5,Number('abc'),function(){alert(3);}];
var btn=document.getElementsByTagName("input");
var txt=document.getElementsByTagName("div")[0];
//找到所有数字
btn[0].onclick=function(){
var arr1=[];
for (var i=0;i<arr.length;i++) {
if(typeof arr[i]=="number"&&!isNaN(arr[i])){
arr1.push(arr[i]);
}
}
txt.innerHTML=arr1;
}
//找到所有可以转换成数字的元素
btn[1].onclick=function(){
var arr1=[];
for (var i=0;i<arr.length;i++) {
var num=parseFloat(arr[i])
if(!isNaN(num)){
arr1.push(arr[i]);
}
}
txt.innerHTML=arr1;
}
//判断最大值
btn[2].onclick=function(){
var arr1=[];
for (var i=0;i<arr.length;i++) {
var num=parseFloat(arr[i]);
if(!isNaN(num)){
arr1.push(num);
}
}
var max=arr1[0];
var len=arr1.length;
for (var i=0;i<len;i++) {
if(arr[i]>max){
max=arr[i];
}
}
txt.innerHTML=max;
}
//NaN所在的位置
btn[3].onclick=function(){
var arr1=[];
for (var i=0;i<arr.length;i++) {
if(isNaN(arr[i])&&typeof arr[i]=="number"){
arr1.push(i);
}
}
txt.innerHTML=arr1;
}
简单判断QQ号码
HTML部分
<input type="text" id="txt"/> <input type="button" value="验证" id="btn"/>
JS部分
//判断QQ号码
//1.有没有输入
//2.输入的是不是数字
//3.不能有0在前面
//4.不能是小数
//5.输入的数字必须在5位以上、10位以内
var txt=document.getElementById("txt");
var btn=document.getElementById("btn");
btn.onclick=function(){
//有没有输入
var val=txt.value;
if(val==""){
alert("请输入内容");
}else if(!Number(val)){
alert("请输入数字")
}else if(parseFloat(val)!==parseInt(val)){
alert("不能输入小数")
}else if(val.charAt(0)==0){
alert("第一位不能为0")
}else if(val.length<5||val.length>10){
alert("请输入5-10位的数字")
}
}

浙公网安备 33010602011771号