型別
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自動轉換型別
沒有留言:
張貼留言