JavaScript高級程序設計讀書總結(jié)(一)

  1. ECMAScript就是對實現(xiàn)該標準規(guī)定的各個方面內(nèi)容的語言的描述瘟则,它規(guī)定了這門語言的下列組成部分:語法、類型枝秤、語句醋拧、關(guān)鍵字、保留字淀弹、操作符丹壕、對象。
  2. DOM的作用是把頁面映射為一個多層節(jié)點結(jié)構(gòu)薇溃,開發(fā)人員通過DOM提供的API對HTML頁面的節(jié)點進行增刪改等操作菌赖。
  3. BOM從根本上講只處理瀏覽器窗口和框架。
  4. 雖然 JavaScript 和 ECMAScript 通常都被人們用來表達相同的含義沐序,但 JavaScript 的含義卻比 ECMA-262 中規(guī)定的要多得多琉用。一個完整的 JavaScript 實現(xiàn)應該由下列三個不同的部分組成:
    核心(ECMAScript)
    文檔對象模型(DOM)  
    瀏覽器對象模型(BOM)
  5. DOM并不只是針對JavaScript的,很多別的語言也都實現(xiàn)了DOM策幼。
  6. <script>屬性:
    async: 異步加載
    defer: 立即下載邑时、延遲執(zhí)行
  7. 相對于嵌入JavaScript代碼,使用外部JavaScript文件的優(yōu)點有可維護性好特姐、優(yōu)化頁面加載速度(由于瀏覽器的緩存機制晶丘,如果倆個頁面都使用同一個文件,那么只需下載一次)
  8. <noscript>用于在不支持JavaScript的瀏覽器中顯示替代的內(nèi)容唐含。
  9. 文檔模式:混雜模式浅浮、標準模式和準標準模式。
    ECMAScript中的一切(變量捷枯、函數(shù)名和操作符)都區(qū)分大小寫滚秩。
  10. ES5中引入了嚴格模式的概念,在頂部添加代碼:"use strict" 即可啟用淮捆。
alert(null == undefined); // true
  1. Number()可以把任何數(shù)據(jù)類型轉(zhuǎn)換為數(shù)值郁油,parseInt()和parseFloat()可以把字符串轉(zhuǎn)換為數(shù)值。
  2. 全等”===”只在兩個操作數(shù)未經(jīng)轉(zhuǎn)換就相等的情況下返回true争剿。
    14.ECMAScript 中的對象其實就是一組數(shù)據(jù)和功能的集合已艰。
    15.break 和 continue 語句用于在循環(huán)中精確地控制代碼的執(zhí)行。其中蚕苇,break 語句會立即退出循環(huán)哩掺,強制繼續(xù)執(zhí)行循環(huán)后面的語句。而 continue 語句雖然也是立即退出循環(huán)涩笤,但退出循環(huán)后會從循環(huán)的頂部繼續(xù)執(zhí)行嚼吞。
var num = 0;
for (var i=1; i < 10; i++) {    
    if (i % 5 == 0) {
    break;
    }
    num++;
}
alert(num); //4

16.break 和 continue 語句都可以與 label 語句聯(lián)合使用盒件,從而返回代碼中特定的位置。這種聯(lián)合使用的情況多發(fā)生在循環(huán)嵌套的情況下舱禽,如:

var num = 0;
outermost:
    for (var i = 0; i < 10; i++) {
        for (var j = 0; j < 10; j++) {
            if (i == 5 && j == 5) {
                break outermost;
            }
            num++;
        }
    }
alert(num); //55
  1. 使用var操作符定義的變量為該變量作用域中的局部變量炒刁,省略var將會創(chuàng)建一個全局變量(不推薦,嚴格模式下報錯)誊稚。
  2. 數(shù)據(jù)類型:ECMAScript中有5種簡單數(shù)據(jù)類型(也稱為基本數(shù)據(jù)類型):Undefined翔始、Null、Boolean里伯、Number和String城瞎。還有1種復雜數(shù)據(jù)類型——Object,Object本質(zhì)上是由一組無序的名值對組成的疾瓮。
  3. ECMAScript能夠表示的最小數(shù)值保存在Number.MIN_VALUE中——在大多數(shù)瀏覽器中脖镀,這個值是5e-324;能夠表示的最大數(shù)值保存在Number.MAX_VALUE中——在大多數(shù)瀏覽器中狼电,這個值是1.7976931348623157e+308蜒灰。
  4. arguments 對象只是與數(shù)組類似(它并不是 Array 的實例),因為可以使用方括號語法訪問它的每一個元素(即第一個元素是 arguments[0]肩碟,第二個元素是 argumetns[1]强窖,以此類推),使用 length 屬性來確定傳遞進來多少個參數(shù)腾务。
  5. NaN是一個特殊的數(shù)值毕骡,isNaN()函數(shù)用于判斷一個值是否為數(shù)字,例如字符串"10"或Boolean值岩瘦。而任何不能被轉(zhuǎn)換為數(shù)值的值都會導致這個函數(shù)返回true。
  6. Object的每個實例都具有下列屬性和方法:
    constructor:保存著用于創(chuàng)建當前對象的函數(shù)窿撬。對于前面的例子而言启昧,構(gòu)造函數(shù)(constructor)就是Object()。
    hasOwnProperty(propertyName):用于檢查給定的屬性在當前對象實例中(而不是在實例的原型中)是否存在劈伴。
    isPrototypeOf(object):用于檢查傳入的對象是否是傳入對象的原型密末。
    propertyIsEnumerable(propertyName):用于檢查給定的屬性是否能夠使用for-in語句來枚舉。
    toLocaleString():返回對象的字符串表示跛璧,該字符串與執(zhí)行環(huán)境的地區(qū)對應严里。
    toString():返回對象的字符串表示。
    valueOf():返回對象的字符串追城、數(shù)值或布爾值表示刹碾。通常與toString()方法的返回值相同。
    由于在ECMAScript中Object是所有對象的基礎座柱,因此所有對象都具有這些基本的屬性和方法迷帜。
 var obj1 = new Object();
 var obj2 = obj1;

像這樣復制引用類型的值時物舒,其實只是相當于復制了一個指針,倆個變量指向的是同一個對象戏锹,所以當為obj1添加新的屬性時冠胯,obj2也可以訪問這個新屬性。不僅在變量中如此锦针,在函數(shù)的傳參時荠察,也遵循相同的原理。

  1. typeof()一般用來檢測基本數(shù)據(jù)類型奈搜,instanceof()用來檢測Object屬于什么類型的對象悉盆。
  2. 在執(zhí)行try-catch語句的catch塊或執(zhí)行with語句時,會在作用域鏈的前端臨時增加一個變量對象媚污。
  3. JavaScript具有自動垃圾收集機制舀瓢,最常用的是標記清楚。不過IE9之前COM對象的垃圾收集機制采用的是引用計數(shù)策略耗美,因此當在IE9之前涉及COM對象撩满,就會有循環(huán)引用的問題喜最。
  4. 合理利用垃圾收集機制還可以做到優(yōu)化瀏覽器性能,比如在程序中,一旦有數(shù)據(jù)不再有用树绩,可以將其設置為null來釋放它的引用,這種解除引用的方法適用于大多數(shù)全局變量和全局對象的屬性硬耍,解除引用后,數(shù)據(jù)脫離了執(zhí)行環(huán)境赶袄,下次垃圾收集器運行時便會將其回收,從而達到釋放內(nèi)存的優(yōu)化目的饿肺。
  5. 在WEB瀏覽器中蒋困,全局執(zhí)行環(huán)境被認為時window對象敬辣,因此所有全局變量和函數(shù)都是作為window對象的屬性和方法創(chuàng)建的。
  6. 作用域鏈的用途是保證對執(zhí)行環(huán)境有權(quán)訪問的所有變量和函數(shù)的有序訪問溉跃。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市撰茎,隨后出現(xiàn)的幾起案子嵌牺,更是在濱河造成了極大的恐慌,老刑警劉巖拟蜻,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異枯饿,居然都是意外死亡,警方通過查閱死者的電腦和手機奢方,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蟋字,“玉大人稿蹲,你說我怎么就攤上這事鹊奖。” “怎么了忠聚?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵设哗,是天一觀的道長。 經(jīng)常有香客問我两蟀,道長网梢,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任赂毯,我火速辦了婚禮战虏,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘党涕。我一直安慰自己烦感,他們只是感情好,可當我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布膛堤。 她就那樣靜靜地躺著啸盏,像睡著了一般。 火紅的嫁衣襯著肌膚如雪骑祟。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天气笙,我揣著相機與錄音次企,去河邊找鬼。 笑死潜圃,一個胖子當著我的面吹牛缸棵,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播谭期,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼堵第,長吁一口氣:“原來是場噩夢啊……” “哼吧凉!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起踏志,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤阀捅,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后针余,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體饲鄙,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年圆雁,在試婚紗的時候發(fā)現(xiàn)自己被綠了忍级。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡伪朽,死狀恐怖轴咱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情烈涮,我是刑警寧澤朴肺,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站跃脊,受9級特大地震影響宇挫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜酪术,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一器瘪、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧绘雁,春花似錦橡疼、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至挪略,卻和暖如春历帚,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背杠娱。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留禽拔,地道東北人。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓硫惕,卻偏偏與公主長得像野来,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子梁只,可洞房花燭夜當晚...
    茶點故事閱讀 44,689評論 2 354