js中的數據類型和判斷數據類型
基本數據類型,六大基本數據類型:字符串(String)、數字(Number)、布爾(Boolean)、對象(Object)、空(Null)、未定義(Undefined)。
1,字符串:string,單引號或者雙引號號起來的,就是字符串。
2,數字(Number),數字類型,包括浮是點數整數等。
3,布爾(Boolean),false,true。
4,未定義(undefined),未定義,當一個變量未創建或者創建未賦值的時候就是undefined。
5,空(Null),不存在,dom節點不存在,返回值為null。
6,對象(object),js中萬物皆對象。
7,不是基本數據類型,function。
8,數組(array),[]
那么如果有一個變量,如何判斷它的數據類型。
1,首先typeof可以解決大部分的數據類型判斷。以上1-4和7(8等會再說)都是可以直接(typeof 變量名)返回變量的基本數據類型的,判斷某個是否為String類型,可以直接 if(typeof(你的值) == "string"){}。只有null和object返回object類型,這里可以理解成null是一個空對象,但是由於(null == undefined)返回ture。所以可以理解成一個空對象的占位符。
怎么判斷null和object類型呢 ?首先判斷是不是object,然后在判斷是不是null,若是返回null,若不是返回object:
function isObj(str) { if(str === null) { return false; } return typeof str === 'object'; }
那么8返回的也是object,怎么判斷呢?instanceof出場。
2,instanceof 用來判斷某一個變量是否是某一個對象的實例,是一個三目運算符:a instanceof b?alert("true"):alert("false") //注意b值是你想要判斷的那種數據類型,不是一個字符串,比如Array。
var a; var b = 2; var c = "字符串"; var d = false; var e = null; var f = undefined; var g = [];
var i = new Object(); var h = function hh(argument) { } alert(e instanceof Array)
alert(i instanceof Array)
alert(g instanceof Array)
此外還有一個constructor,用法跟instance差不多,不多說了。
上面說了這些,其實在用的時候,要組合起來用,先判斷變量的類型,再在范圍內做下一步的判斷就可以。
