回歸簡單
要理解JavaScript,你得首先放下對象和類的概念,回到數(shù)據(jù)和代碼的本原。前面說過,編程世界只有數(shù)據(jù)和代碼兩種基本元素,而這兩種元素又有著糾纏不清的關(guān)系。JavaScript就是把數(shù)據(jù)和代碼都簡化到最原始的程度。
JavaScript中的數(shù)據(jù)很簡潔的。簡單數(shù)據(jù)只有 undefined, null, boolean, number和string這五種,而復(fù)雜數(shù)據(jù)只有一種,即object。這就好比中國古典的樸素唯物思想,把世界最基本的元素歸為金木水火土,其他復(fù)雜的物質(zhì)都是由這五種基本元素組成。
JavaScript中的代碼只體現(xiàn)為一種形式,就是function。
注意:以上單詞都是小寫的,不要和Number, String, Object, Function等JavaScript內(nèi)置函數(shù)混淆了。要知道,JavaScript語言是區(qū)分大小寫的呀!
任何一個JavaScript的標(biāo)識、常量、變量和參數(shù)都只是unfined, null, bool, number, string, object 和 function類型中的一種,也就typeof返回值表明的類型。除此之外沒有其他類型了。
先說說簡單數(shù)據(jù)類型吧。
- undefined:
代表一切未知的事物,啥都沒有,無法想象,代碼也就更無法去處理了。 注意:typeof(undefined) 返回也是 undefined?梢詫ndefined賦值給任何變量或?qū)傩,但并不意味了清除了該變量,反而會因此多了一個屬性。
- null:
有那么一個概念,但沒有東西。無中似有,有中還無。雖難以想象,但已經(jīng)可以用代碼來處理了。 注意:typeof(null)返回object,但null并非object,具有null值的變量也并非object。
- boolean:
是就是,非就非,沒有疑義。對就對,錯就錯,絕對明確。既能被代碼處理,也可以控制代碼的流程。
- number:
線性的事物,大小和次序分明,多而不亂。便于代碼進(jìn)行批量處理,也控制代碼的迭代和循環(huán)等。 注意:typeof(NaN)和typeof(Infinity)都返回number 。NaN參與任何數(shù)值計算的結(jié)構(gòu)都是NaN,而且 NaN != NaN 。Infinity / Infinity = NaN 。
- string:
面向人類的理性事物,而不是機器信號。人機信息溝通,代碼據(jù)此理解人的意圖等等,都靠它了。
簡單類型都不是對象,JavaScript沒有將對象化的能力賦予這些簡單類型。直接被賦予簡單類型常量值的標(biāo)識符、變量和參數(shù)都不是一個對象。
所謂“對象化”,就是可以將數(shù)據(jù)和代碼組織成復(fù)雜結(jié)構(gòu)的能力。JavaScript中只有object類型和function類型提供了對象化的能力。
出處:軟件真諦
責(zé)任編輯:moby
上一頁 引子 下一頁 沒有類
◎進(jìn)入論壇網(wǎng)頁制作、WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評論。
|