• JavaScript数据类型转换汇总


    ECMAScirpt中的数据类型:undefined、Null、Boolean、Number、String、Object

    对一个值使用typeof操作符可能返回下列某个字符串:

    number(数字)、function(函数)、Boolean(布尔值)、string(字符串)、object(对象或null)、undefined(未定义)

    undefined类型:

    在声明了变量但未对其加以初始化时,这个变量的值就是undefined

    Null类型:

    它的特殊值就是null,null值表示一个空对象指针

    Boolean类型:

    有两个字面值:true、false,注意true不一定等于1,false不一定等于0

    要将一个值转换成对应的布尔值,可以调用转型函数Boolean()

    Number类型

    将一个值转换成对应的数字,Number()

    例如:

        var a1='';
        alert(Number(a1));//0  注意
        var a2=true;
        alert(Number(a2));//1
        var a3=[];
        alert(Number(a3));//0

    parseInt、parseFloat将值转换成整数、小数

        var num=200.45;
        if (parseInt(num)==parseFloat(num)) {
            alert(num+'是整数');
        }
        else{
            alert(num+'是小数');    
        };

    Number()、parseInt()、parseFloat()都是显示类型转换,也叫强制类型转换

    隐式类型转换有:

    +                                                 200+’3’     变成字符串 2003

    -、*、/、%

    ++、——                                         变成数字

    >、<                                            注意数字的比较与字符串的比较是不一样的

    NaN:

    即not a number ,NaN不是数字的数字类型,NaN与其本身不相等,isNaN()判断某些值是不是数字;与Number相反,isNaN()是在Number转不成数字的情况下的数字类型

    JavaScript:

            var oBtn=document.getElementById('btn1');
            var oText=document.getElementById('text1');
            var str='';
    
            oBtn.onclick=function(){
                str=oText.value;
                //判断输入的内容是否为数字
                if (isNaN(str)) {
                    alert(str+'不是数字');
                }
                else{
                    //判断是否为空格/*Number(str)==0*/ 
                    if (str==null) {
                        alert('输入的是空格');
                    }
                    else
                        {alert(str+'是数字');}
                };
            }

    HTML:

    <input id="text1" type="text">
    <input id="btn1" type="button" value="判断文本框内的内容是否为数字">

    数据类型转换的应用,我们来看一个例子:在输入框输入内容,要求判断:1、有没有输入 2、输入的是不是数字 3、不能有0在前面 4、不能是小数 5、输入的数字必须是在5位数以上、10位数以内

            var oBtn=document.getElementById('btn1');
            var oText=document.getElementById('text1');
            var str='';
    
            oBtn.onclick=function(){
                str=oText.value;
                oText.value='';
                if (str=='') {
                    alert('请输入内容');//没有输入内容
                }
                //判断输入的内容是否为数字
                else if (isNaN(str)) {//不是数字
                    alert('请输入数字');//输入的不是数字    
                }
                //判断输入的是否为空格
                else if(Number(str)==0){
                    alert('空格无效');
                }
                else{//输入的是数字
    
                    //判断第一位数是否为0
                    if (str[0]=='0') {
                        alert('第一位是不能为0');
                    }
                    else{
                        
                        //判断是否为小数
                        if (parseInt(str)==parseFloat(str)) {
    
                            var num=parseInt(str);
                            //输入的数字必须在5位以上、10位以内
                            if ((num>9999)&&(num<999999999)) {
    
                                alert('输入成功!');
                            }
                            else{
                                alert('输入的数字不在范围内');
                            };
                        }    
                        else{
                            alert('输入的数字是小数');
                                
                        }
        
                    }
                        
                };
            }
     

    HTML:

    <input id="text1" type="text">
    <input id="btn1" type="button" value="判断">
    <ol>
        <li>有没有输入</li>
        <li>输入的是不是数字</li>
        <li>不能有0在前面</li>
        <li>不能是小数</li>
        <li>输入的数字必须在5位以上、10位以内</li>
    </ol>

    注意:在输入框输入空格时,Number()能将其转换为数字0,所以,空格也是非NaN,用Number(str)==0来判断是否输入的为空格,此处本想用str==null代替却未达到效果,但在别的程序里用str==null来判断是否为空格却有用,欢迎大家前来指点!

    纵里寻她千百度,蓦然回首,那人却在灯火阑珊处
  • 相关阅读:
    intellij idea 热部署失效,需要手动编译类
    mac brew 安装包下载失败解决
    DataTemplate 之 ContentTemplate 的使用
    dataTemplate 之 ContentTemplate 的使用
    dataTemplate 的使用之listView
    dataTemplate 使用
    wpf中UserControl的几种绑定方式
    WPF教程(四)RelativeSource属性
    堆的概念
    哈夫曼(huffman)树和哈夫曼编码
  • 原文地址:https://www.cnblogs.com/jnslove/p/5300353.html
Copyright © 2020-2023  润新知