网站建设项目售后服务承诺,有哪些网站可以做店面设计软件,建设论坛网站要备案,自己建网站做微商最近做项目中遇到了一些关于javascript数据类型的判断处理#xff0c;上网找了一下资料#xff0c;并且亲自验证了各种数据类型的判断#xff0c;在此做一个总结吧#xff01; 一、JS中的数据类型 1.数值型#xff08;Number#xff09;#xff1a;包括整数、浮点数。 2… 最近做项目中遇到了一些关于javascript数据类型的判断处理上网找了一下资料并且亲自验证了各种数据类型的判断在此做一个总结吧 一、JS中的数据类型 1.数值型Number包括整数、浮点数。 2.布尔型Boolean 3.字符串型String 4.对象Object 5.数组Array 6.空值(Null) 7.未定义Undefined 二、判断一个变量的数据类型 1.数值型number 比较常用的判断方法是 1 function isNumber(val){
2 return typeof val number;
3 } 但有些情况就不行比如 1 var a;
2 alert(isNumber(parseInt(a))); 这里弹出来的是true,如下图所示 但实际上变量a是NaN它是不能用于数值运算的。 所以上面的函数可以修改为 1 function isNumber(val){
2 return typeof val number isFinite(val);
3 } 修改了之后弹出来的就是false,如下图所示 顺便介绍一下JavaScript isFinite() 函数isFinite() 函数用于检查其参数是否是无穷大如果 number 是有限数字或可转换为有限数字那么返回 true。否则如果 number 是 NaN非数字或者是正、负无穷大的数则返回 false。 2.布尔型boolean 布尔类型的判断比较简单可以用如下的方法进行判断 1 /*
2 判断变量val是不是布尔类型
3 */
4 function isBooleanType(val) {
5 return typeof val boolean;
6 } 测试代码 1 script typetext/javascript2 /*3 判断变量val是不是布尔类型4 */5 function isBooleanType(val) {6 return typeof val boolean;7 }8 var a;9 var b false;
10 alert(变量a是布尔类型的判断结果是isBooleanType(a));
11 alert(变量b是布尔类型的判断结果是isBooleanType(b));
12 /script 运行结果 3. 字符串(String) 字符串类型的判断比较简单可以用如下的方法进行判断 1 /*
2 判断变量是不是字符串类型
3 */
4 function isStringType(val) {
5 return typeof val string;
6 } 测试代码 1 script typetext/javascript2 /*3 判断变量是不是字符串类型4 */5 function isStringType(val) {6 return typeof val string;7 }8 9 var a;
10 var s strType;
11 alert(变量a是字符串类型的判断结果是isStringType(a));
12 alert(变量s是字符串类型的判断结果是isStringType(s));
13 /script 运行结果 4.未定义Undefined 未定义的判断比较简单可以用如下的方法进行判断 1 /*
2 判断变量是不是Undefined
3 */
4 function isUndefined(val) {
5 return typeof val undefined;
6 } 测试代码 1 script typetext/javascript2 var a;//a是undefined3 var s strType;4 /*5 判断变量是不是Undefined6 */7 function isUndefined(val) {8 return typeof val undefined;9 }
10 alert(变量a是Undefined的判断结果是isUndefined(a));
11 alert(变量s是Undefined的判断结果是isUndefined(s));
12 /script 运行结果 5.对象Object 由于当变量是空值Null时typeof也会返回object所以Object不能直接用 typeof 判断。 应该这样 1 function isObj(str){
2 if(str null || typeof str undefined){
3 return false;
4 }
5 return typeof str object;
6 } 测试代码 1 script typetext/javascript2 /*3 判断变量是不是Object类型4 */5 function isObj(str){6 if(str null || typeof str undefined){7 return false;8 }9 return typeof str object;
10 }
11
12 var a;
13 var b null;
14 var c str;
15 var d {};
16 var e new Object();
17
18 alert(b的值是nulltypeof b object的判断结果是(typeof b object));
19 alert(变量a是Object类型的判断结果是isObj(a));//false
20 alert(变量b是Object类型的判断结果是isObj(b));//false
21 alert(变量c是Object类型的判断结果是isObj(c));//false
22 alert(变量d是Object类型的判断结果是isObj(d));//true
23 alert(变量e是Object类型的判断结果是isObj(e));//true
24 /script 运行结果 6.空值Null 判断空值用 val null 即可 1 function isNull(val){
2 return val null;
3 } 测试代码 1 /*2 判断变量是不是null3 */4 function isNull(val){5 return val null;6 }7 /*测试变量*/8 var a;9 var b null;
10 var c str;
11 //弹出运行结果
12 alert(变量a是null的判断结果是isNull(a));//false
13 alert(变量b是null类型的判断结果是isNull(b));//true
14 alert(变量c是null类型的判断结果是isNull(c));//false 运行结果 7.数组Array 数组类型不可用typeof来判断。因为当变量是数组类型是typeof会返回object。 这里有两种方法判断数组类型: 1 /*判断变量arr是不是数组2 方法一3 */4 function isArray1(arr) {5 return Object.prototype.toString.apply(arr) [object Array];6 }7 8 /*判断变量arr是不是数组9 方法二
10 */
11 function isArray2(arr) {
12 if(arr null || typeof arr undefined){
13 return false;
14 }
15 return arr.constructor Array;
16 } 测试代码 1 script typetext/javascript2 /*判断变量arr是不是数组3 方法一4 */5 function isArray1(arr) {6 return Object.prototype.toString.apply(arr) [object Array];7 }8 /*判断变量arr是不是数组9 方法二
10 */
11 function isArray2(arr) {
12 if(arr null || typeof arr undefined){
13 return false;
14 }
15 return arr.constructor Array;
16 }
17 //测试变量
18 var a null;
19 var b ;
20 var c ;
21 var arr1 [1,2,3];
22 var arr2 new Array();
23 //打印测试结果
24 document.write(arr1变量是数组类型typeof arr1 object的结果是(typeof arr1 object));
25 document.write(br/);
26 document.write(------------------------------------------------------------------------------------------------);
27 document.write(br/);
28 document.write(使用isArray1方法判断结果如下);
29 document.write(br/);
30 document.write(------------------------------------------------------------------------------------------------);
31 document.write(br/);
32 document.write(变量a是数组类型的判断结果是isArray1(a));
33 document.write(br/);
34 document.write(变量b是数组类型的判断结果是isArray1(b));
35 document.write(br/);
36 document.write(变量c是数组类型的判断结果是isArray1(c));
37 document.write(br/);
38 document.write(变量arr1是数组类型的判断结果是isArray1(arr1));
39 document.write(br/);
40 document.write(变量arr2是数组类型的判断结果是isArray1(arr2));
41 document.write(br/);
42 document.write(------------------------------------------------------------------------------------------------);
43 document.write(br/);
44 document.write(使用isArray2方法判断结果如下);
45 document.write(br/);
46 document.write(------------------------------------------------------------------------------------------------);
47 document.write(br/);
48 document.write(变量a是数组类型的判断结果是isArray2(a));
49 document.write(br/);
50 document.write(变量b是数组类型的判断结果是isArray2(b));
51 document.write(br/);
52 document.write(变量c是数组类型的判断结果是isArray2(c));
53 document.write(br/);
54 document.write(变量arr1是数组类型的判断结果是isArray2(arr1));
55 document.write(br/);
56 document.write(变量arr2是数组类型的判断结果是isArray2(arr2));
57 document.write(br/);
58 /script 运行结果 转载于:https://www.cnblogs.com/xdp-gacl/p/3490065.html