zoukankan      html  css  js  c++  java
  • 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位的数字")
    	}
    }
    

      

      

  • 相关阅读:
    flume+kafka+storm打通过程
    kafka入门
    hive执行更新和删除操作
    redis存储对象与对象序列化详解
    语音常识--语音信号的数字模型
    声源测向: TDOA-GCC-PATH方法
    【面试】如何比较一个类型【模板使用】【sizeof用法】
    【概括】C++11/14特性
    【面试】编译器为我们实现了几个类成员函数?(c++)
    语音信号处理常识【摘抄|自用】
  • 原文地址:https://www.cnblogs.com/yangxue72/p/7767699.html
Copyright © 2011-2022 走看看