javascript
JS的类型转换
當string,number函數不被用作構造函數的可以當成轉換函數
如?string(false),number(‘3’),boolean([])
Object(3)?=?new?number(3);
除了NULL和undefined以外任何值都具有toString()方法
JS?在執行程序的時候會自動檢測表達式來進行變量轉換。
???顯示轉換變量:
???可以使用構造函數:
??String(‘op’);object();boolean([]),number(‘3’),
類型之間的轉換:
???
| 類型 | 字符串 | 數字 | 布爾值 | 對象 |
| undefined | “undefined” | NaN | false | Thows?TypeError |
| null | “” | 0 | false | Thows?TypeError |
| “” | ? | ? | false | New?string(“”) |
| “1.2” | ? | 1.2 | true | New?string(“1.2”) |
| “one” | ? | NaN | true | New?string(“one”) |
| 0 | “0” | ? | false | New?number(0) |
| -0 | “0” | ? | false | New?number(-0) |
| NaN | “NaN” | ? | false | New?number(NaN) |
| Infinity | “Infinity” | ? | true | New?number(Infinity) |
| -Infinity | “-Infinity” | ? | true | New?number(-Infinity) |
| 1 | ‘1’ | ? | True? | New?number(1) |
| {}任意對象 | ? | ? | True | ? |
| []任意數組 | ? | 0 | True | ? |
| [8] | “8” | 8 | true | ? |
| [‘a’] | join | NaN | true | ? |
| function | ? | NaN | true | ? |
?
?
對象轉換為原始值:
所有的對象都轉換為布爾值為true,包括包裝對象也是這樣。
對象轉換為字符串和數值的是調用一個方法來實現的。麻煩的是JS對象有兩個不同的方法來轉換。
第一個方法:toString()方法,返回一個反映這個對象的字符串。
({x:1,y:2}).toString()?//?=>[object?object]
數組返回:將每個數組元素返回并在數組元素后加,合并成一個字符串。
函數類的toString返回這個函數定義語法;
日期類:返回一個可讀的日期字符串。
第二個方法:valueOf()
??這個方法未定義具體的作用;
如果存在原始值返回原始值,對象是復合值,因此一般返回對象本身,而不是返回一個原始值。
特殊情況:
對象轉換到字符串:
???如果對象具有toString方法,則調用此方法如果此方法返回的是一個原始值則把原始值轉換為字符串。
如果對象沒有toString方法,或是此方法不返回一個原始值的話調用valueOf方法,如果valueOf返回一個原始值則轉換為字符串。
如果,value,toString沒法返回原始值,則拋出一個錯誤。
?
對象轉換到數字:
????如果對象具有valueOf方法,,或是此方法不返回一個原始值的話調用valueOf方法,如果valueOf返回一個原始值則轉換為數值。
???
如果對象不具有valueOf方法,則調用toString方法如果此方法返回的是一個原始值則把原始值轉換為數值。
如果,value,toString沒法返回原始值,則拋出一個錯誤。
轉載于:https://www.cnblogs.com/phplhs/p/4156464.html
總結
- 上一篇: MVC-控制器向View传值的三种方法
- 下一篇: JavaScript闭包学习笔记