DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> JavaScript知識點總結(六)之JavaScript判斷變量數據類型
JavaScript知識點總結(六)之JavaScript判斷變量數據類型
編輯:關於JavaScript     

最近做了一個項目,其中有關於js判斷數據類型的處理,在網上搜了相關資料,並且親自測試了各種數據類型的判斷,絕對安全。下面小編把具體內容總結分享給大家,大家參考下!

一、JS中的數據類型

   1.數值型(Number):包括整數、浮點數。

   2.布爾型(Boolean)

   3.字符串型(String)

   4.對象(Object)

   5.數組(Array)

   6.空值(Null)

   7.未定義(Undefined)

二、判斷一個變量的數據類型

1.數值型(number)

  比較常用的判斷方法是:

function isNumber(val){
return typeof val === 'number';
} 

  但有些情況就不行,比如:

var a;
alert(isNumber(parseInt(a))); 

  這裡彈出來的是true,如下圖所示:


  但實際上變量a是NaN,它是不能用於數值運算的。

  所以上面的函數可以修改為:

function isNumber(val){
return typeof val === 'number' && isFinite(val);
} 

修改了之後,彈出來的就是false,如下圖所示:

  順便介紹一下JavaScript isFinite() 函數,isFinite() 函數用於檢查其參數是否是無窮大,如果 number 是有限數字(或可轉換為有限數字),那麼返回 true。否則,如果 number 是 NaN(非數字),或者是正、負無窮大的數,則返回 false。

2.布爾型(boolean)

  布爾類型的判斷比較簡單,可以用如下的方法進行判斷:

/*
判斷變量val是不是布爾類型
*/
function isBooleanType(val) {
return typeof val ==="boolean";
} 

測試代碼:

<script type="text/javascript">
/*
判斷變量val是不是布爾類型
*/
function isBooleanType(val) {
return typeof val ==="boolean";
}
var a;
var b = false;
alert("變量a是布爾類型的判斷結果是:"+isBooleanType(a));
alert("變量b是布爾類型的判斷結果是:"+isBooleanType(b));
</script> 

運行結果:

3. 字符串(String)

  字符串類型的判斷比較簡單,可以用如下的方法進行判斷:

/*
判斷變量是不是字符串類型
*/
function isStringType(val) {
return typeof val === "string";
} 

測試代碼:

<script type="text/javascript">
/*
判斷變量是不是字符串類型
*/
function isStringType(val) {
return typeof val === "string";
}
var a;
var s = "strType";
alert("變量a是字符串類型的判斷結果是:"+isStringType(a));
alert("變量s是字符串類型的判斷結果是:"+isStringType(s));
</script> 

運行結果:


4.未定義(Undefined)

  未定義的判斷比較簡單,可以用如下的方法進行判斷:

/*
判斷變量是不是Undefined
*/
function isUndefined(val) {
return typeof val === "undefined";
}

測試代碼:

<script type="text/javascript">
var a;//a是undefined
var s = "strType";
/*
判斷變量是不是Undefined
*/
function isUndefined(val) {
return typeof val === "undefined";
}
alert("變量a是Undefined的判斷結果是:"+isUndefined(a));
alert("變量s是Undefined的判斷結果是:"+isUndefined(s));
</script> 

運行結果:


5.對象(Object)

  由於當變量是空值Null時,typeof也會返回object,所以Object不能直接用 typeof 判斷。

應該這樣:

function isObj(str){
if(str === null || typeof str === 'undefined'){
return false;
}
return typeof str === 'object';
} 

測試代碼:

<script type="text/javascript">
/*
判斷變量是不是Object類型
*/
function isObj(str){
if(str === null || typeof str === 'undefined'){
return false;
}
return typeof str === 'object';
}
var a;
var b = null;
var c = "str";
var d = {};
var e = new Object();
alert("b的值是null,typeof b ==='object'的判斷結果是:"+(typeof b ==='object'));
alert("變量a是Object類型的判斷結果是:"+isObj(a));//false
alert("變量b是Object類型的判斷結果是:"+isObj(b));//false
alert("變量c是Object類型的判斷結果是:"+isObj(c));//false
alert("變量d是Object類型的判斷結果是:"+isObj(d));//true
alert("變量e是Object類型的判斷結果是:"+isObj(e));//true
</script> 

運行結果:


6.空值(Null)

  判斷空值用 val === null 即可

function isNull(val){
return val === null;
}

測試代碼:

/*
判斷變量是不是null
*/
function isNull(val){
return val === null;
}
/*測試變量*/
var a;
var b = null;
var c = "str";
//彈出運行結果
alert("變量a是null的判斷結果是:"+isNull(a));//false
alert("變量b是null類型的判斷結果是:"+isNull(b));//true
alert("變量c是null類型的判斷結果是:"+isNull(c));//false 

運行結果:


7.數組(Array)

  數組類型不可用typeof來判斷。因為當變量是數組類型是,typeof會返回object。

  這裡有兩種方法判斷數組類型:

/*判斷變量arr是不是數組
方法一
*/
function isArray(arr) {
return Object.prototype.toString.apply(arr) === '[object Array]';
}
/*判斷變量arr是不是數組
方法二
*/
function isArray(arr) {
if(arr === null || typeof arr === 'undefined'){
return false;
}
return arr.constructor === Array;
}

測試代碼:

<script type="text/javascript">
/*判斷變量arr是不是數組
方法一
*/
function isArray(arr) {
return Object.prototype.toString.apply(arr) === '[object Array]';
}
/*判斷變量arr是不是數組
方法二
*/
function isArray(arr) {
if(arr === null || typeof arr === 'undefined'){
return false;
}
return arr.constructor === Array;
}
//測試變量
var a = null;
var b = "";
var c ;
var arr = [,,];
var arr = new Array();
//打印測試結果
document.write("arr變量是數組類型,typeof arr === 'object'的結果是:"+(typeof arr === 'object'));
document.write("<br/>");
document.write("------------------------------------------------------------------------------------------------");
document.write("<br/>");
document.write("使用isArray方法判斷結果如下:");
document.write("<br/>");
document.write("------------------------------------------------------------------------------------------------");
document.write("<br/>");
document.write("變量a是數組類型的判斷結果是:"+isArray(a));
document.write("<br/>");
document.write("變量b是數組類型的判斷結果是:"+isArray(b));
document.write("<br/>");
document.write("變量c是數組類型的判斷結果是:"+isArray(c));
document.write("<br/>");
document.write("變量arr是數組類型的判斷結果是:"+isArray(arr));
document.write("<br/>");
document.write("變量arr是數組類型的判斷結果是:"+isArray(arr));
document.write("<br/>");
document.write("------------------------------------------------------------------------------------------------");
document.write("<br/>");
document.write("使用isArray方法判斷結果如下:");
document.write("<br/>");
document.write("------------------------------------------------------------------------------------------------");
document.write("<br/>");
document.write("變量a是數組類型的判斷結果是:"+isArray(a));
document.write("<br/>");
document.write("變量b是數組類型的判斷結果是:"+isArray(b));
document.write("<br/>");
document.write("變量c是數組類型的判斷結果是:"+isArray(c));
document.write("<br/>");
document.write("變量arr是數組類型的判斷結果是:"+isArray(arr));
document.write("<br/>");
document.write("變量arr是數組類型的判斷結果是:"+isArray(arr));
document.write("<br/>");
</script> 

運行結果:

  

以上內容是小編給大家介紹的JavaScript知識點總結(六)之JavaScript判斷變量數據類型的相關知識,希望對大家有所幫助,如果大家想了解更多內容敬請關注網站!

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved