## js類型轉化
```
* Number() 轉換為數字,
* String() 轉換為字符串,
* Boolean() 轉化為布爾值。
```
---
> ### **在 JavaScript 中有 5 種不同的數據類型:**
* #### **string | number | Boolean | object |function**
> #### **3 種對象類型:**
* #### **Object| Data |Array**
>#### **2 個不包含任何值的數據類型:**
* #### **null|undefind**
---
typeof 操作符
你可以使用 typeof 操作符來查看 JavaScript 變量的數據類型。
```
typeof "John" // 返回 string
typeof 3.14 // 返回 number
typeof NaN // 返回 number
typeof false // 返回 boolean
typeof [1,2,3,4] // 返回 object
typeof {name:'John', age:34} // 返回 object
typeof new Date() // 返回 object
typeof function () {} // 返回 function
typeof myCar // 返回 undefined (如果 myCar 沒有聲明)
typeof null // 返回 object
```
---
### **constructor 屬性**
constructor 屬性返回所有 JavaScript 變量的構造函數。
```
"John".constructor // 返回函數 String() { [native code] }
(3.14).constructor // 返回函數 Number() { [native code] }
false.constructor // 返回函數 Boolean() { [native code] }
[1,2,3,4].constructor // 返回函數 Array() { [native code] }
{name:'John', age:34}.constructor // 返回函數 Object() { [native code] }
new Date().constructor // 返回函數 Date() { [native code] }
function () {}.constructor // 返回函數 Function(){ [native code] }
```
JavaScript 類型轉換
JavaScript 變量可以轉換為新變量或其他數據類型:
* 通過使用 JavaScript 函數
* 通過 JavaScript 自身自動轉換
---
**將數字轉化為字符串**
全局方法 String() 可以將數字轉換為字符串。
該方法可用于任何類型的數字,字母,變量,表達式:
```
String(x) // 將變量 x 轉換為字符串并返回
String(123) // 將數字 123 轉換為字符串并返回
String(100 + 23) // 將數字表達式轉換為字符串并返回
```
---
**將布爾值轉換為字符串**
全局方法 String() 可以將布爾值轉換為字符串。
```
String(false) // 返回 "false"
String(true) // 返回 "true"
Boolean 方法 toString() 也有相同的效果。
false.toString() // 返回 "false"
true.toString() // 返回 "true"
```
---
**將日期轉換為字符串**
Date() 返回字符串。
Date() // 返回 Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)
>全局方法 String() 可以將日期對象轉換為字符串。
```
String(new Date()) // 返回 Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)
Date 方法 toString() 也有相同的效果。
obj = new Date()
obj.toString() // 返回 Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)
```
---
**將字符串轉換為數字**
全局方法 Number() 可以將字符串轉換為數字。
字符串包含數字(如 "3.14") 轉換為數字 (如 3.14).
空字符串轉換為 0。
其他的字符串會轉換為 NaN (不是個數字)。
```
Number("3.14") // 返回 3.14
Number(" ") // 返回 0
Number("") // 返回 0
Number("99 88") // 返回 NaN
```
---
**將日期轉換為數字**
>全局方法 Number() 可將日期轉換為數字。
```
d = new Date();
Number(d) // 返回 1404568027739
日期方法 getTime() 也有相同的效果。
d = new Date();
d.getTime() // 返回 1404568027739
```
---
**自動轉換為字符串**
>當你嘗試輸出一個對象或一個變量時 JavaScript 會自動調用變量的 toString() 方法:
```
document.getElementById("demo").innerHTML = myVar;
myVar = {name:"Fjohn"} // toString 轉換為 "[object Object]"
myVar = [1,2,3,4] // toString 轉換為 "1,2,3,4"
myVar = new Date() // toString 轉換為 "Fri Jul 18 2014 09:08:55 GMT+0200"
數字和布爾值也經常相互轉換:
myVar = 123 // toString 轉換為 "123"
myVar = true // toString 轉換為 "true"
myVar = false // toString 轉換為 "false"
```
> 我們可以使用 typeof 來獲取一個變量是否存在,如 if(typeof a!="undefined"){},而不要去使用 if(a) 因為如果 a 不存在(未聲明)則會出錯.
> 正因為 typeof 遇到 null,數組,對象時都會返回 object 類型,所以當我們要判斷一個對象是否是數組時。
> 或者判斷某個變量是否是某個對象的實例則要選擇使用另一個關鍵語法 instanceof
。
```
instanceof
可通過 instanceof 操作符來判斷對象的具體類型,語法格式:
var result = objectName instanceof objectType
返回布爾值,如果是指定類型返回 true,否則返回 false:
arr = [1,2,3];
if(arr instanceof Array){
document.write("arr 是一個數組");
} else {
document.write("arr 不是一個數組");
}
```