JS基礎 —— 數據類型

JS數據類型分爲簡單數據類型(基本數據類型)和複雜數據類型(引用數據類型)。函數

基本數據類型:Undefined、Null、Boolean、Number、String、Symbol。測試

引用數據類型:Object。prototype

能夠經過typeof操做符判斷以上7種數據類型,語法:typeof 變量,返回值以下:指針

- "undefined" —— 若是這個值未定義;事實上,若是這個變量未聲明,返回值也是undefined
- "boolean" —— 若是這個值是布爾值
- "string" —— 若是這個值是字符串
- "number" —— 若是這個值是數值
- "object" —— 若是這個值是對象或null
- "symbol" —— 若是這個值是Symbol函數生成的
- "function" —— 若是這個值是函數

數據類型

  1. Undefined類型code

    • 只有一個值:undefined
    • 聲明變量後未經初始化,則默認值是undefined;因此不必將一個變量顯性地設置爲undefined
  2. Null類型對象

    • 只有一個值:null
    • 空對象指針
    • undefined派生自null,因此它們的相等性測試 undefined == null 返回 true
    • 與undefined不一樣的是,只要意在保存對象的變量尚未真正保存對象,就應該明確地讓變量初始化爲null
  3. Boolean類型blog

    • 只有兩個值:true 和 false
    • 其它類型值轉換爲Boolean值,調用轉型函數Boolean()字符串

      數據類型 轉換爲true值 轉換爲false值
      Boolean true false
      String 非空字符串 空字符串("")
      Number 非0數字值 0和NaN
      Object 任何對象 null
      Undefined undefined
  4. Number類型
    • 字面量
      • 整數
        • 十進制:ddd,d:0~9
        • 八進制: 0ddd,d:0~7。嚴格模式下無效,會致使支持嚴格模式地JS引擎拋出錯誤
        • 十六進制:0xddd,d:0~9及A~F(小寫也能夠)
      • 浮點數值
        • 合法寫法
          • 1.1
          • 0.1
          • .1 --> 0.1
            1. --> 整數 1
          • 1.0 --> 整數 1
        • 極大極小值,用e表示
          • 3.125e7 --> 31250000
          • 3e-7 --> 0.0000003
        • 最大精度17位
          • 0.1 + 0.2 != 0.3
    • 數值範圍
      • Number.MIN_VALUE
      • Number.MAX_VALUE
      • 超範圍顯示Infinity和-Infinity --> Number.POSITIVE_INFINITY和Number.NEGATIVE_INFINITY
      • 函數isFinite():參數在極小和極大之間返回true,不然false
    • NaN
      • Not a Number
      • NaN == NaN 返回 false
      • 函數isNaN():參數先被轉換成Number類型,轉換後的結果是NaN返回true,不然false;參數是對象,會先調用valueOf()方法,若是返回值能轉換爲數值,則進行測試,不然再調用toString()方法,進行測試
    • 數值轉換
      • Number()原型

        數據類型 Number()轉換後結果
        Boolean 1和0
        Number 無變化
        Null 0
        Undefined 0
        String 只包含數字(包括前面帶正號或負號的狀況)--> 十進制數值,如"-123" --> 123,"077" --> 77(不會被認爲是八進制);
        有效浮點格式 --> 浮點值;
        十六進制(0x) --> 十進制數值;
        其它 --> NaN
        Object valueOf()→如果NaN(好比Object對象)→toString()→再按以上規則
      • parseInt()
        • 字符串從前日後取數字(符合整數格式),碰到非數字中止
        • 第二個參數指定進制,如8,10,16
      • parseFloat()
        • 同上(符合浮點格式)
      • 注:valueOf()
        • 對象原型方法:返回對象的原始值。
        • 查看對象的原始值辦法

  5. String類型
    • 字符:16位Unicode
    • "" 或 ''
    • 轉義字符:
    • 其它類型轉換爲String類型
      • toString()
        • Boolean、Number、String、Object都有toString()方法
        • Null、Undefined沒有toString()方法
        • Object.prototype.toString.call():能夠查看數據類型
      • 轉型函數String()
        • 有toString()方法的調用toString()
        • null --> "null"
        • undefined --> "undefined"
    • 字符串拼接
      • 新開闢空間,拼接字符串,刪除原字符串
  6. Symbol類型string

  7. Object類型
    • Object 就是一組數據和功能的集合
    • 全部對象的基礎,如Function、Array、Date
    • Object每一個實例都有:constructor、hasOwnProperty(propertyName)、isPropertyOf(object)、propertyIsEnumerable(propertyName)、toLocaleString()、toString()、valueOf()

檢測數據類型

  1. 操做符 typeof
    • 能檢測出的類型:Undefined、Null、Boolean、Number、String、Object、Symbol和函數
  2. 操做符 instanceOf
    • 區分具體對象類型,如 [1,2,3] instanceof Array --> true ; 1 instanceof Number --> true
    • null、undefined不行
  3. 方法 constructor()

    • 同instanceof
  4. 方法 toString()
    • 能檢測出的類型:全部
相關文章
相關標籤/搜索