JS類型和類 小記錄
阿新 • • 發佈:2018-03-29
關於 proto parseint 數據 布爾值 clas 暫時 prototype ==
七種數據類型
number
記住二進制是0b開頭
八進制0開頭,後來ES5添加了0o開頭
十六進制是0x開頭
string
var s = ‘12345‘ + ‘67890‘ // 無回車符號 或 var s = `12345 67890` // 含回車符號 或者ES6中可以用反引號: var a = `123 456` undefined a "123 456"
boolean
要麽是false要麽是true
symbol
暫時讓他消失在二次元
object
各種類型無序的組合在一起,比如: var person= { name:"frank", age:"18", } 要記住,鍵一定是字符串,不管你加不加引號!!可以使用delete刪除 delete person[‘name‘]
null
undefined
都表示沒有值,但是知道以下就可以了: 1.如果一個變量沒有被賦值,name這個變量的值就是undefined。 2.如果你想表示一個還沒有被賦值的對象,就用null,如果你想表示一個還沒賦值的字符串、數字、布爾或者是symbol那就用undefined。
沒有function也沒有array,它們不是數據類型
可以用typeof來測試類型哦
註意function不是一個類型。
類型之間的轉換
任意類型轉字符串:
1.使用String
String(1) "1" String(true) "true" String(null) "null" String(undefined) "undefined" String({}) "[object Object]"
2.使用toString
3. x + ‘‘
任意類型轉數字
1.Number(x)
2. x - 0
3.+x
4.parseInt(x, 10)
5.parseFloat(x)
任意類型轉布爾值
1.Boolean(x)
2.!!x
對象
問題1:
var a = 1 和 var a = new Number(1)有什麽區別?
那麽為什麽第一個 var a = 1也可以使用 toString()?
因為在使用a.toString()的時候,會臨時創建一個對象,就像new一個1一樣。
見下題:
全局對象:
ECMAScript 規定全局對象叫做 global,但是瀏覽器把 window 作為全局對象(瀏覽器先存在的),window 就是一個哈希表,有很多屬性。
有兩種:
一種是ECMAScript規定的:
global.parseInt
global.parseFloat
global.Number
global.String
global.Boolean
global.Object
一種是瀏覽器自己加的屬性
window.alert 所以我們會簡單不同的瀏覽器的警示框都不同
window.prompt
window.comfirm
window.console.log
window.console.dir
window.document
window.document.createElement
window.document.getElementById
幾個重要的全局函數:
Number()
String()
Boolean()
Object()
關於原型就是共有屬性
所有對象都有 toString 和 valueOf 屬性,那麽我們是否有必要給每個對象一個 toString 和 valueOf 呢?
JS 的做法是把 toString 和 valueOf 放在一個對象裏(暫且叫做公用屬性組成的對象)
然後讓每一個對象的 __proto__
存儲這個「公用屬性組成的對象」的地址。
Number如此,String也如此,其他也差不多。如果非要解釋原型鏈,看圖好了,連在一起像不像鏈子~
記住以下的重要公式:
var 對象 = new 函數() 對象.__proto__ === 函數.prototype
JS類型和類 小記錄