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位的数字")
	}
}

  

  

原文地址:https://www.cnblogs.com/yangxue72/p/7767699.html