JavaScript數據類型

js的數據類型主要分爲兩大類:原始(基本)數據類型,引用(複雜)數據類型數據結構

  原始數據類型:number,string,boolean,null,undefinedspa

    1. numberprototype

    Number類型包含整數和浮點數(浮點數數值必須包含一個小數點,且小數點後面至少有一位數字)兩種值,值得注意的是NaN(not a number)也是number類型的,NaN 與其餘數值進行比較的結果老是不相等的,包括它自身在內。指針

    檢測一個數是不是number類型,能夠用 isNaN(),也能夠直接用typeof()檢測。code

    isNaN()返回的是一個Boolean值,也就是true和false,若是檢測的內容是數字,返回的值爲false,不然返回true對象

var num = 123;
var num1 = "mercy";
console.log(isNaN(num));        //false
console.log(isNaN(num1));       //true

    typeof()直接返回的是數據的類型blog

var num = 123;
var num1 = "mercy";
console.log(typeof(num));        //number
console.log(typeof(num1));       //string

    2. string字符串

    字符串類型,是惟一沒有固定大小的原始類型。能夠用字符串存儲 0 或更多的字符,字符串中每一個字符都有特定的位置,首字符從位置 0 開始,第二個字符在位置 1,依此類推。這意原型

味着字符串中的最後一個字符的位置必定是字符串的長度減1。字符串通常使用雙引號("")包裹起來。string

    檢測的話,只能用typeof()來檢測

var str = "hello world";
console.log(typeof(str));        //string

    3. boolean

    boolean的返回值只有兩種,就true或false。所以,boolean的檢測十分簡單,也是用typeof()檢測,就很少說了。

    4. null

    null類型被看作空對象指針,前文說到null類型也是空的對象引用。

    typeof()檢測的返回值爲object。

    5. undefined

    只有一個值,即undefined值。使用var聲明瞭變量,但未給變量初始化值,那麼這個變量的值就是undefined。

    typeof()檢測的返回值爲undefined。

  引用數據類型:object

     js中對象是一組屬性與方法的集合。這裏就要說到引用類型了,引用類型是一種數據結構,用於將數據和功能組織在一塊兒。引用類型有時候也被稱爲對象定義,由於它們描述的是一類

    對象所具備的屬性和方法。

    typeof()檢測的返回值爲object。

從上面就能夠看出,有兩種數據類型的檢測,返回的都是object,其實還要一種數據類型array,用typeof()檢測,它的返回類型也是object,那麼問題來了,如何區分這三種數據類型呢?

判斷類型的方法不少,這裏我就只說一種:toString()方法。

  toString()方法,這個是利用對象的原型來判斷。在js中,有萬物皆對象的說法,所以咱們就能夠利用Object.prototype.toString.call(檢測的數據)來檢測。

var num = 100;
var str = "hello world";
var arr = [1,2,3,4,5];
var obj = {
    name : "張三",
    age : 30,
    sex : "男"
}
var nul = null;
var bool = true;
console.log(Object.prototype.toString.call(num));     //[object Number]
console.log(Object.prototype.toString.call(str));     //[object String]
console.log(Object.prototype.toString.call(arr));     //[object Array]
console.log(Object.prototype.toString.call(obj));     //[object Object]
console.log(Object.prototype.toString.call(nul));     //[object Null]
console.log(Object.prototype.toString.call(bool));    //[object Boolean]
相關文章
相關標籤/搜索