一、判斷資料類型的兩種方法:
1、 typeof (檢測的資料)
var a = "hello world";
var b = 6.5;
// 檢測a的資料類型
console.log(typeof(a)); //string
//檢測a,b的資料類型
console.log(typeof(a),typeof(b)); // string number
2、instanceof 檢測的資料
instanceof 是用來判斷 A 是否為 B 的執行個體,表達式為:A instanceof B,如果 A 是 B 的執行個體,則傳回 true,否則傳回 false。
[] instanceof Array; // true
{} instanceof Object;// true
new Date() instanceof Date;// true
function Person(){};
new Person() instanceof Person;
[] instanceof Object; // true
new Date() instanceof Object;// true
new Person instanceof Object;// true
我們發現,雖然 instanceof 能夠判斷出 [ ] 是Array的執行個體,但它認為 [ ] 也是Object的執行個體,為什麼呢?
我們來分析一下 [ ]、Array、Object 三者之間的關系:
從 instanceof 能夠判斷出 [ ].proto 指向 Array.prototype,而 Array.prototype.proto 又指向了Object.prototype,最終 Object.prototype.proto 指向了null,标志着原型鍊的結束。是以,[]、Array、Object 就在内部形成了一條原型鍊:
二、轉換為數字類型(number):
資料類型 | Number() | parseInt() | parseFloat() | Math.round() | |
---|---|---|---|---|---|
string | 字元串内容為數字 | 數字 | 數字向下取整 | 數字 | 數字四舍五入 |
字元串内容不為數字 | NaN | NaN | NaN | NaN | |
boolean | 布爾值為true | 1 | NaN | NaN | 1 |
布爾值為false | NaN | NaN | |||
undefined | NaN | NaN | NaN | NaN | |
null | NaN | NaN |
注: 要轉換的資料都放在括号裡
三、轉換為字元串類型(string):
資料類型 | String() | .toString() |
---|---|---|
number | 内容為數字的字元串 | 内容為數字的字元串 |
boolean | 内容為true或false的字元串 | 内容為true或false的字元串 |
undefined | 内容為undefined的字元串 | 報錯,不可用 |
null | 内容為null的字元串 | 報錯,不可用 |
注:.tostring()的用法為: 要改變類型的資料.toString()
四、轉換為布爾類型(boolean):
資料類型 | Boolean() | |
---|---|---|
number | 非0數字 | true |
false | ||
string | 非空字元串 | true |
空 | false | |
undefined | false | |
null | false |
注: 要轉換的資料都放在括号裡