2019年3月7日 星期四

[Back To Basic] Javascript - 型別轉換(Type Conversions)

型別

Javascript的型別
  • 可存值
    • string
    • number
    • boolean
    • object
Javascript有6種物件
      • Object
      • Date
      • Array
      • String
      • Number
      • Boolean
    • function
  • 不可存值
    • null
    • undefined

typeof

可用來取得變數的型別。結果超出預期的如下

type of NaN; // number
type of new Array(); // object
type of new Date(); // object
type of null; // object
type of undefined; // undefined

  • 由上述可知,typeof 難以辨別和 object 相關的型別或特殊的型別。
  • typeof 本身是一種符號,類似於 + - * / 的角色,因此 typeof 本身沒有型別

取得變數的建構式

為了解決 typeof Array, typeof Date, typeof null 都是object 的問題,首先觀察constructor。
  • 是不是Array
function isArray1(v) {
    return v.constructor.toString().indexOf('Array') > -1;
};

function isArray2(v) {
    return v.constructor === Array;
}
  • 是不是Date
function isDate1(v) {
    return v.constructor.toString().indexOf('Date') > -1;
};

function isDate2(v) {
    return v.constructor === Date;
}

型別轉換

2種型別轉換方式
  • 使用javascript提供的function
    • 轉成字串
      • String(var)
      • var.toString()
    • 轉成數值
      • Number(var)
        • Number(""); // 回傳 0
        • Number(true); // 1
        • Number(false); // 0
      • +
        • e.g. var num = + "13"; // num = 13;
        • e.g. var num = + "Shawn"; // num = NaN;
    • javascript自動轉換型別


沒有留言:

張貼留言