最近做了一个项目,处理js对数据类型的判断,在网上搜索相关信息,亲自测试各种数据类型的判断,绝对安全。下面小编总结分享具体内容,供大家参考!
1.JS中的数据类型。
1.数字:包括整数和浮点数。
2.布尔(布尔)
3.字符串类型(字符串)
4.对象(对象)。
5.数组(数组)。
6.空值(空)
7.未定义(未定义)。
其次,判断一个变量的数据类型。
1.数字类型(数字)
常用的判断方法有:
函数is number(val){ val的返回类型===' number}但是有些情况是行不通的,比如:
风险值a;alert(is number(parsent(a)));这里弹出True,如下图所示:
但实际上,变量a是NaN,不能用于数值运算。
因此上述功能可以修改为:
函数is number(val){ val的返回类型==' number ' is inite(val);}修改后,弹出false,如下图所示:
顺便介绍一下JavaScript的isFinite()函数,用来检查它的参数是否为无穷大,如果数字为有限(或者可以转换为有限)则返回true。否则,如果number是NaN(不是数字),或者是一个具有无限正或负的数字,则返回false。
2.布尔(布尔)
布尔类型的判断相对简单,可以通过以下方式进行判断:
/*判断变量val是否为布尔类型*/function is boolean type(val){ val的返回类型==' boolean}测试代码:
脚本类型='text/javascript'/*判断变量val是否为boolean */function is boolean type(val){ val的返回类型==' boolean} var a;var b=假;Alert('变量A为布尔类型的判断结果为:' is booleantype(A));Alert('变量b为布尔类型的判断结果为:' is BooleanType(b));/脚本运行结果:
3.字符串(字符串)。
字符串类型的判断比较简单,可以通过以下方法判断:
/*判断变量是否为字符串类型*/函数是否为字符串类型(val){ val的返回类型==' string}测试代码:
脚本类型='text/javascript'/*判断变量是否为字符串类型*/函数是否为字符串类型(val){ val的返回类型==' string} var a;var s=' strTypeAlert('变量A为字符串类型的判断结果为:' isStringType(A));Alert('变量s为字符串类型的判断结果为:' isStringType(s));/脚本运行结果:
4.未定义(未定义)。
未定义判断比较简单,可以通过以下方法判断:
/*判断变量是否未定义*/函数是否未定义(val){ val的返回类型==' undefined}测试代码:
脚本类型=' text/JavaScript ' var a;//a是undefinedvar s=' strType/*判断变量是否未定义*/函数是否未定义(val){ val的返回类型==' undefined}alert('变量a的判断结果为Undefined:' isUndefined(a));Alert('变量s的判断结果为Undefined:' is Undefined(s));/脚本运行结果:
5.对象(对象)。
当变量为空时,Typeof也返回Object,所以不能直接用typeof来判断对象。
应该是这样的:
函数isObj(str){ if(str===null | | str的类型===' undefined '){ return false;}返回str==='object '的类型;}测试代码:
脚本类型='text/javascript'/*判断变量是不是目标类型*/function isObj(str){ if(str===null | | str的类型===' undefined '){ return false;}返回str==='对象'的类型;} var a;var b=nullvar c=' strvar d={ };var e=新对象();警报(' b的值是null,类型为==='对象'的判断结果是:'(类型为b==' object ');警报('变量a是目标类型的判断结果是:' IseBj(a));//falsealert('变量b是目标类型的判断结果是:' IseBj(b));//falsealert('变量c是目标类型的判断结果是:' IseBj(c));//falsealert('变量d是目标类型的判断结果是:' IseBj(d));//truealert('变量e是目标类型的判断结果是:' IseBj(e));//true/script运行结果:
6.空值(空)
判断空值用val===null即可
函数为Null(val){ return val===Null;}测试代码:
/*判断变量是不是null */函数为Null(val){ return val===Null;}/*测试变量*/var a;var b=nullvar c=' str//弹出运行结果警报('变量a是空的判断结果是:' '是Null(a));//falsealert('变量b是空类型的判断结果是:' '是Null(b));//truealert('变量c是空类型的判断结果是:' '为Null(c));//false运行结果:
7.数组(数组)
数组类型不可用类型来判断。因为当变量是数组类型是,类型会返回对象。
这里有两种方法判断数组类型:
/*判断变量到达)是不是数组方法一*/函数isArray(arr){返回对象。原型。tostring。apply(arr)='[对象数组]';}/*判断变量到达)是不是数组方法二*/函数isArray(arr){ if(arr===null | | arr的类型===' undefined '){ return false;}返回arr.constructor===Array}测试代码:
脚本类型='text/javascript'/*判断变量到达)是不是数组方法一*/函数isArray(arr){返回对象。原型。tostring。apply(arr)='[对象数组]';}/*判断变量到达)是不是数组方法二*/函数isArray(arr){ if(arr===null | | arr的类型===' undefined '){ return false;}返回arr.constructor===Array}//测试变量var a=nullvar b=风险值c .var arr=[,];var arr=新数组();//打印测试结果document.write('arr变量是数组类型,arr==='对象'的类型的结果是:'(arr===' object ')的类型;文件。write('(br/');文件。写('-');文件。write('(br/');document.write('使用isArray方法判断结果如下:');文件。write('(br/');文件。写('-');文件。write('(br/');document.write('变量a是数组类型的判断结果是:' isArray(a));文件。write('(br/');document.write('变量b是数组类型的判断结果是:' isArray(b));文件。write('(br/');document.write('变量c是数组类型的判断结果是:' isArray(c));文件。write('(br/');document.write('变量到达)是数组类型的判断结果是:' isArray(arr));文件。write('(br/');document.write('变量到达)是数组类型的判断结果是:' isArray(arr));文件。write('(br/');文件。写('-');文件。write('(br/');document.write('使用isArray方法判断结果如下:');文件。write('(br/');文件。写('-');文件。write('(br/');document.write('变量a是数组类型的判断结果是:' isArray(a));文件。write('(br/');document.write('变量b是数组类型的判断结果是:' isArray(b));文件。write('(br/');document.write('变量c是数组类型的判断结果是:' isArray(c));文件。write('(br/');document.write('变量到达)是数组类型的判断结果是:' isArray(arr));文件。write('(br/');document.write('变量到达)是数组类型的判断结果是:' isArray(arr));文件。write('(br/');/script运行结果:
以上内容是边肖介绍的JavaScript知识点总结(六)中关于JavaScript判断变量数据类型的相关知识,希望对大家有所帮助。如果你想了解更多,请关注我们的网站!