《Head First JavaScript》讀書筆記


**html

簡介

**
書名:《Head First JavaScript》
中文譯名:《深刻淺出JavaScript》
著:Michael Morrison
編譯:O’Reilly Taiwan公司
出版發行:東南大學出版社
圖片描述前端


申明:
本文所作的筆記並不是本書最精華的部分,筆記大可能是第一次閱讀本書時候所記錄下來的本人比較有感觸的部分(茅塞頓開?),雖然再次看這些知識點的時候本身也找不到當時初看時候的感受,可是分享給你們,但願對你們的前端學習有所幫助。node


第一章 交互式網絡,感受虛擬世界

本章首先講述了JavaScript對於網頁的重要性,即爲網頁帶來了生命;而後以一個iRock的例子說明了JavaScript是如何爲網頁帶來了生命,使網絡呈現出交互性,總得來講屬於吸引人繼續往下讀的章節,本章,我沒有作太多有用的筆記。正則表達式


第二章 存儲數據 每項事物都有本身的位置

一、本章主要講述的是如何呈現數據、存儲數據以及找出數據:
二、JavaScript使用三種基本數據類型text、number以及boolean。設定JavaScript的值的時候,即已自動暗示類型。具備極大的靈活性;
三、alert框裏列出的數字,其一定爲文本類型;
四、設定常量使用const NAME=Value;
五、從新載入網頁,腳本回來還沒有執行前的狀態;
六、標識符:變量,常量及其它JavsScript語法元素在腳本里用做分辨的獨一無二的名稱,標識符應該具備描述性;
七、建立常量時務必初始化,不然容易引發誤解(未初始化undefined表示沒有數據);
八、NaN:not a number;非數字,用於表達變量的特殊情況,某個表示應該是數字的值不見了的時候就會出現NaN;
九、經常使用命名規則:主要採用駝峯型(CamelCase)(首字母也大寫)只會用於對象,小寫駝峯型則用於變量和函數,常量所有大寫;
十、parseInt()與parseFloat():將文本轉換爲數字(傳入的必須爲數值,不然NaN);
十一、toFixed()函數能夠把Number四捨五入爲指定小數位數的數字;
十二、isNaN()函數,返回兩個值,不是數字(true);是數字(false)
1三、對象的定義:其是一種先進的JavaScript數據類型,它能結合函數,常量和變量爲一個邏輯實體(logical entity),方法(method)實際上是屬於某對象的函數,特性(property)則是對象裏的常量和變量,JavaScript幾乎使用對象表達一切;----------數據庫

第三章 探索客戶端 瀏覽器探索

一、瀏覽器裏面容許JavaScript代碼的部分叫作JavaScript解釋器;
二、JavaScript被稱做客戶端語言的緣由在於,網頁不用等待服務器處理和返回數據;
三、關於cookie:express

  • cookie就像變量,瀏覽器把它存放在用戶的硬盤中;編程

  • cookie的做用在於延長腳本的生命週期;cookie具備本身的有效日期,甚至都算不上中期的保存方案;數組

  • 服務器也能夠用來永久存儲數據,不太小數據的時候不須要小題大作;瀏覽器

  • readCookie();writeCookie();安全

  • cookie影響瀏覽器的安全性,其自己非安全的存儲場所,最好別把敏感數據存儲在cookie裏;

  • cookie不能訪問用戶的硬盤或散步病毒,可是能夠存儲輸入網頁的我的數據。

  • 只有在指定的網頁裏,cookie名稱才須要獨特,由於cookie存儲時會依據建立它們的網頁加上區隔,確認cookie在單一網站或網頁裏面具體獨特性;

  • 不一樣瀏覽器不能共享cookie的數據的;

  • cookie只適合存儲相對較少的文本數據(小於4kb)cookie效率比較低;

  • navigator.cookieEnabled用於檢查瀏覽器是否支持cookie;

四、Ajax:編寫的向網站請求信息的腳本,而後於網頁上呈現信息;
五、單次定時器——setTimeout(Timer code,Timer delay);
六、無論數字多大,都別在JavaScript的數值中加逗號;
七、清除定時器clearInterval(timerID);
八、document.body.clientWidth和document.body.clientHeigth特性裏面存儲了客戶端窗口的寬度和高度;
九、document對象表明網頁自己;
十、style.height和style.width,幾乎能夠改變任何元素的尺寸;
十一、要取用網頁元素,須要在onload裏運行;
十二、onresize()事件,檢測並響應瀏覽器窗口尺寸的調整;


第四章 決策 前有岔路,面對抉擇

一、分號保留給單一語句使用,複合語句不須要;複合語句裏面出現的單一語句仍是須要加上分號,可是複合語句自己則不須要;
二、運算符:operator;表達式:expression;
三、只要不是null、0、空字符串(「」),或「未定義」,任何值都會被解讀爲true;
四、做用域表明數據的上下文;
五、腳本層次:腳本的最上層;
六、建立在函數內的變量爲局部變量,其它所有都是全局變量;
七、switch/case語句讓咱們在許多事物之間有效率的選擇,switch後面的表達式,不可爲運算式,只能是單純的數據。


第五章 循環 自我重複的風險

一、數組用於在單一場所存儲多段數據;
二、數組的頁碼稱爲鍵(key),索引只是一種形式特殊的鍵,它是數值鍵;
三、存儲在數組裏的數據不必定爲相同類型;
四、並不要求二維數組具備相同的行數,可是最好保持一致。


第六章 函數 簡化、重複利用、回收再利用

一、解決「大」問題的訣竅,就在於將其分解成較小,較易管理的問題,若是分解後問題仍是太龐大,再進一步分解;
二、程序代碼分解爲函數的緣由,在於協助區分工做,併爲每一個函數賦予單一目的;
三、複製代碼是個作成函數的好徵兆,另一個徵兆是某段代碼逐漸變得笨重龐大,且能夠被分解爲數個邏輯片斷;
四、argument:函數自變量;
五、字面量(literal)是用於表達源代碼中一個固定值的表示法;
六、return語句亦可不與任何數據同用,單純用於提前結束函數;
七、關於函數的進一步理解:

  • 函數只不過是變量,函數不像通常變量,變量將其數據存儲成存儲器的某個區域裏的值,函數則存儲對代碼的引用。因此函數變量的值不是代碼自己,而是指向存儲代碼的存儲器位置的引用;

  • 當函數主體單獨出現而沒有名稱時,又被稱爲函數字面量(function literal) 函數名稱也被稱爲函數引用(function reference)

  • 引用函數和調用函數的區別在於函數名稱後面是否有(),函數引用只會單獨出現,可是函數調用則一定後隨括號,不少時候還附有自變量;

  • 函數引用讓咱們聯接JavaScript代碼設計的事件處理函數,而不需改動HTML代碼;

  • 回調函數:回調函數就是一個經過函數指針調用的函數。若是你把函數的指針(地址)做爲參數傳遞給另外一個函數,當這個指針被用來調用其所指向的函數時,咱們就說這是回調函數,其重要性在於讓咱們對代碼外發生的事情有所反應,回調函數就是一直在等待某事發生好準備起身動做的函數;

  • 函數字面量有時候被稱爲匿名函數(anonymous

  • function),只是沒有名稱的函數主體,有點像是實際的數據,其重要性在於它們很適合須要快速偶發回調函數的狀況,只被調用一次;

八、onload事件處理器是一個初始化全部事件的絕佳地方;
九、onload處理器保證網頁必定已經載入,script標籤中,網頁不必定加載;


第7章 表單與驗證 讓用戶全盤托出

一、id屬性可獨一無二地識別網頁元素,name屬性可獨一無二地識別表單中的域,以上二、兩個屬性都可當成input域的識別符;
三、form對象厲害的地方,在於它也是一個數組,負責存儲表單中全部域。可是它的數組元素並不是利用數值索引存儲,而是使用域獨有,於name屬性設定的標識符;
四、oncharge事件和onblur相似,但它只在某個域再也不被選擇並且輸入內容被改變時觸發;
五、有不少響應鍵盤行爲的事件。好比onkeypress,onkeyup,onkeydown;
六、使用<span></span>來添加驗證,而不使用煩人的alert();
七、在html元素的上下文中,關鍵字this指向表明該元素的對象,form屬性能夠把整份表單當作對象訪問,this.form用於引用表單自己。this.form是對form對象的引用;
八、輔助信息的id,命名規則通常爲輸入域的id後面加上_help;
九、isNaN()函數可檢查值是否「不爲數字」;
十、數據所有都正確才執行(&&);
十一、問題很嚴重時,值得使用alert框;
十二、關於正則表達式:

  • 做用:正則表達式(regular expression)專門設計用於匹配文本模式;

  • 正則表達式使用說明:出如今一對斜線裏//;

  • 元符號:用來鏈接字母和數字,建立高度描述性文本模式的特殊符號;

    • 」.」(點):匹配任何字符,換行符除外(newline);

    • \s:匹配空格,包括空白字符(space),tab,換行符,renturn/enter;

    • \d:匹配任何數字字符;

    • ^:字符串需以模式起始,前不能有其它字符;

    • \w:匹配任何字母數字;

    • $:字符串須要以此模式結束;

  • 正則表達式:不是元字符的任何文字將於正則表達式裏「照樣匹配」;

  • 正則表達式限定符(quantifier),限定符前爲子模式,限定符即應用在子模式,而且控制子模式出如今模式裏地次數:

    • *:子模式爲可選的,可出現任意次數;

    • {n}:限定符以前的子模式必須剛好出現n次;

    • +:子模式必須出現,必須出現1次或屢次;

    • ?:子模式爲可選的,若出現最多隻能出現1次(0或1次);

    • ():集合字符或/和元字符,成爲子模式;

  • 模式限定:比起只有元字符更加精確,再也不直接重複子模式;

  • 正則表達式自己不是字符串,但能夠當作是對外部字符串的描述;

  • 正則表達式單純設計用於匹配文本字符串內的字符模式,因此只能用在字符串上 具備特殊意義的字符,能以\來進行轉義匹配。好比匹配$爲\$;

1三、簡單字母串搜索indexOf()實際上是極度簡化到最簡化的模式匹配,此時的模式只是一個靜態的詞彙或者詞語;
1四、模式是一組對文本的敘述,但模式不見得必爲文本自己;
1五、JavaScript的RegExp對象的test()方法用於檢查字符串是否包含正則表達式模式;
1六、正則表達式中的選替(alternation),相似於JavaScript的OR邏輯運算符,爲|單豎線;
1七、字符類:在模式裏建立受到緊密控制的子模式[],在字符類內,每一個列出的字符都是合格的字符匹配目標,能創建可替換的子模式列表;
1八、郵件驗證的正則表達式:/^[\w\.-_\+]+@[\w-]+(\.\w{2,4})+$/;


第8章 駕馭網頁 利用DOM分割HTML

一、關於innerHTML:

  • innerHTML特性對全部存儲在元素裏的內容提供了訪問管道;

  • innerHTML特性實際上用於設置內容類元素,例如div、span、p以及其它裝載內容的元素;

  • innerHTML特性必定徹底改寫任何原有內容,其沒有附加的概念;

二、nodeValue特性老是包含純文本,沒有額外格式:存儲於節點的值,只限文本和屬性節點使用;
三、利用nodeValue特性,能夠輕易地指派新文本內容給子節點,可是隻在非元素只擁有一個節點,若是擁有多個,只改變第一個;
四、安全的修改內容的方法:移除子節點;根據新內容建立新的文本節點;把新建立的文本子節點附加在節點下:對應removeChild();createTextNode();appendChild();
五、存儲在元素中的內容,在DOM樹中必定是該元素的子節點;
六、nodeType特性返回的是每種節點類型的代號,TEXT是3,ELEMENT是1;
七、DOM是種符合萬維網標準的HTML操縱方式,它能比innerHTML(微軟退出,後被其它瀏覽器採用,但並非標準)特性達成更多操控功能;
八、createTextNode()建立的文本節點內容只能是文本,不能有其它標籤或者附加格式的文本;
九、經過改變樣式類的名稱能夠更改樣式;
十、在HTML代碼中咱們能透過關鍵字this訪問相對於某個元素的對象;
十一、節點的style特性提供對單同樣式特性的訪問;
十二、網頁元素能夠利用元素對象的visibiliey樣式特徵作動態的顯示或隱藏,也能夠用display屬性。


第9章 爲數據帶來生命 科學對象怪人

一、對象=數據+行爲;
二、對象是個容器,其中存儲數據並連接數據與依據數據行動的代碼;
三、當變量與函數被放在對象裏面時,它們被當成對象成員(object member),變量稱爲對象的特性(property),函數被稱爲對象的方法(method);
四、一般運用點號運算符來訪問對象的方法和特性.;以點號引用對象成員;
五、對象是一組有名稱的特性和方法的集合。其包含多塊數據,其可稱爲complex數據類型;而number,text,boolean被稱爲基本數據類型;
六、與對象緊密聯繫的數據,比起在腳本中飄零的通常數據(全局變量),具備更多背景和意義;
七、JavaScript自己就是一個大型的對象集合,好比alert()函數是window對象的方法;
標準JavaScript對象:日期,字符串,數組;
八、構造函數負責建立對象,使用new運算符,它調用對象的構造函數,開啓對象建立和過程;
九、構造函數的大部分工做,就是建立對象的特性,還有對象的初始值。在構造函數裏建立特性時,須要使用JavaScript的關鍵字this,其指派對象特性的全部權,同時設置特性的初始值,建立屬於「這個」(this)對象的特性,而不是構造函數裏的局部變量。this.who=who;
十、構造函數都採用首字母大寫,如同對象名稱
十一、關鍵字this是於構造函數裏建立對象特徵的重點;
十二、new運算符和構造函數共同建立了對象;
1三、構造函數負責建立對象的特性,因此沒有構造函數就沒有任何特性,沒有任何特性就不是一個有意義的對象;
1四、this是JavaScript的關鍵字,用於引用對象;
1五、在Date對象裏,時間以毫秒數表達;
1六、String對象看起來不太像對象,它們只是簡單地括起一段文本字符串,建立爲對象字面量(object literal);
1七、Date對象在於表達瞬間,以1970年1月1日爲參考點,以毫秒爲單位;
1八、對象轉換爲文本,每一個JavaScript對象都具備toString()方法,它試圖爲對象提供文本字符的表達方式,會主動冒出來工做;
1九、getMonth()日期中的月份數,以0到11表示;getDate():一個月中的天數,1到31;getFullYear():完整地四位數年份;
20、Array對象的sort()方法,默認採起由小到大的升冪順序;
2一、字符串裏面的字符串被稱爲子字符串(substring);
2二、indexOf()方法:返回子字符串位置的索引值,或者在找不到匹配字符串時返回-1;
字符串能夠當作是字符組成的數組;
2三、能夠把字符串內的字符類好比數組的元素,可是字符串必定不是數組;
2四、chartAt()只能搜索單一字符;
2五、Math對象是個收藏數學方法和常量的組織對象,其沒有變量,不能用於存儲任何事物;
2六、Math對象並未實際包含可使用的數據(instance data),因此不須要建立對象,其只是靜態的方法和常量的集合;
2七、Math.round():四捨五入;Math.floor():直接捨去小數點後面的數字;
2八、把一些經常使用函數加到對象裏面去;

 


第10章 建立自定義對象 讓你隨心所欲

一、方法過載
2對象類:是對象的描述,一份描述對象構成的模板;對象實例:則是實際對象,從類中建立;
三、類描述對象的特性和方法,實例則把真正的數據放入特性,併爲數據注入生命,每一個實體都有本身的特性副本,實例之間才彼此不一樣;
四、關鍵字this用於設置實例擁有的特性和方法,可是this同時代表它們被各個實例所擁有,這就解釋了方法會被複制到每一個特例(方法過載)的緣由;
五、類擁有的實例方法(class-owned instance method),比起每一個實例各存儲一份方法,有效率多了;
六、方法存儲在類裏,讓全部實例共享一份方法代碼;
七、prototype對象用於設定隸屬於類層(class level)的特性與方法,而非屬於實例的;
八、類是對象的描述,實例則是實際的對象,根據對象描述所建立的;
九、類勾畫了對象的特性和方法,實例則把真正的數據放在特性裏以供方法利用;
十、關鍵字this用於從實例自己的程序代碼內訪問實例;
十一、prototype對象讓方法可存儲於類內,以避免實例沒必要要地一直複製程序代碼;
十二、類讓對象的建立和重複利用更爲容易;
1三、this從實例內的方法訪問實例,而prototype,提供建立類的機制,不像C++或Java等其它程序語言,JavaScript並未真正支持類做爲語言的具體構成要素,它使用prototype模擬類;
1四、構造函數是建立JavaScript類時很是重要的一部分,它們負責構造對象實例,構造函數負責設定實例的一切事項,原型負責處理類層的一切事項;
1五、Blog.prototype.toHTML=function(){…};
1六、對象命名的惟一規則,只有首字母大寫,可是實例的命名規則採用小寫駝峯式。實例實際上是一個變量;
1七、面向對象編程(OOP):在程序中普遍使用對象,程序可分解成不少組彼此交互的對象集合;
1八、類特性(class property)也能共享,使用prototye建立Blog.prototype.signature=「";
調用類特性只須要this.signature;
1九、類特性的訪問必定與實例有關;
20、利用prototype能夠擴展內置的JavaScript類,是類擁有的實例方法,屬於類,但能訪問實例數據;
2一、類方法:爲類全部,可是沒法訪問實例特性的方法,不使用prototype對象,僅使用2二、類名和點號把方法指派給類;類名是調用類對象的關鍵;
2三、把對象的功能封裝(encapsulate)至對象裏,是OPP的基本概念之一,代表外部代碼不該該負責對象自己可負責的工做;
2四、當某個自變量未被傳給函數,方法或構造函數時,在任何試圖使用自變量的代碼裏,它的值都是null,這並不必定是壞事 ;


第11章 出錯務盡 好腳本也會出錯

一、不一樣瀏覽器對腳本的報錯不同,可經過多個瀏覽器找出錯誤出現的地方,總的來講Firefox很是適合去除網頁腳本里所包含的缺陷;
二、凡是未被指派值的變量,會自動假設爲undefined類型,變量歷來不會自動設爲null,其在boolean上下文中都被轉換爲false;
三、雖然大多數瀏覽器都提供了錯誤控制檯,但並不是徹底準確,不能全盤相信;
四、瀏覽器一般產生不徹底的錯誤信息,其都是尋找問題的線索;
五、缺乏括號,打錯字是常見的錯誤來源;
六、JavaScript代碼中,引號應該成對出現;
七、當引號不是引號,使用轉義符:alert(‘It\'s so exciting!'),不須要運用alert(「It's so exciting!」);
八、alert能夠做爲觀察變量數值的窗口以及驗證代碼是否被運行;
九、=不等於==;
十、邏輯錯誤較語法錯誤更難處理,瀏覽器不提示:意圖作某事,卻意外地寫成了另外一件事情的代碼;
十一、凡是企圖讀取未定義的變量行使有意義的行爲都變得徹底沒有意義,於是會報錯;
十二、注意網頁裏面的JavaScript代碼的運行時間;
1三、運行時錯誤(Runtime error):不會載入文檔主體的問題:用戶在表單裏輸入了腳本沒法處理的數據,試圖在對象建立或初始化前訪問對象;
1四、JavaScript三蟲客:語法錯誤,邏輯錯誤,運行時錯誤;
1五、語法錯誤(Syntax):因爲違反JavaScript語言規則而形成的錯誤,表示代碼不適合在JavaScript解釋器中運行;
1六、移除程序代碼是一個絕佳的腳本顯示方式:利用註釋暫時禁用代碼;
1七、同名局部變量會掩蔽全局變量(陰影變量);局部變量在局部範圍內具備優先權,陰影變量在任何狀況下都應該被靜止;


第12章 動態數據 貼心易感的網絡應用程序

一、Ajax:使得網頁的行爲比較像徹底成熟的應用程序,由於它們可以動態地快速下載並存儲數據以及實時響應用戶,卻不用從新載入網頁或利用瀏覽器的某些小手段;
二、以動態數據建造的網頁稱爲數據驅動網頁(data-driven page),這類網頁只定義了等着數據填入的頁面構架;
三、動態數據須要一點事前編輯工做,可是往後帶來龐大的回報;
四、XML是種爲任何類型的數據設計格式的標記語言;
五、XML沒有定義任何標籤和屬性,它是一組標籤與屬性該如何建立和使用的規則。一切六、說明特定數據表現方式的標籤與屬性規範都交給各個XML應用程序;
七、如今已經有不少建立完畢的XML語言,用於解決各式各樣的問題,借用這些XML語言或者建立本身專屬的標記語言都很是好;
八、XHTML是遵照XML的較嚴格語法規則的新版HTML;

  • 必須有結束標籤;

  • 結束標籤必須有/如<br/>;

  • 全部的屬性值均以引號圍起來;

九、XML對數據的外觀沒有概念,其專心於數據的意義;
十、XML曾經是Ajax的一部分,如今仍然是大多數Ajax應用程序的基礎,其提供了數據建模的絕佳機制;
十一、XML和HTML類似,遂能夠透過DOM,把XML視爲節點數而訪問數據。當心的分離出想要的數據,而後動態的融合數據與網頁;
十二、在實行客戶端與服務端的數據通訊時,Ajax以請求(request)和響應(response)爲中心概念;
1三、JavaScript內置一個稱爲XMLHttpRequest的對象,用於發起Ajax請求並處理Ajax響應;
1四、readyState:請求的代碼狀態0(未初始)、1(開啓)、2(已傳送)、3(接收中)、4(已載入);
1五、status:HTTP的請求狀態代碼,例如404(找不到文件)或者200(OK);
1六、onreadystatechange:請求狀態改變時會被調用的函數引用,存儲一個引用,引用於Ajax請求的狀態改變時調用的自定義事件處理器——這是事件處理器就是處理響應的地方(判斷Ajax是否以合格的響應結束);
1七、responseText:由服務器返回的響應數據,格式爲純文本字符串;
1八、responseXML:由服務器返回的響應數據,格式爲XML節點樹構成的對象(這兩個存儲服務器返回的Ajax響應數據);
1九、abort()取消請求,只用在須要取消Ajax請求的時候;
20、open():準備請求,指定請求的類型,URL及其餘細節;
2一、send():傳送請求,交給服務器處理:這兩個方法合做準備Ajax請求,然後送給服務器;
2二、即便是最基礎的Ajax請求,也須要至關數量的JavaScript代碼;
2三、建立XMLHttpRequest對象的問題,在於瀏覽器必須提供本身的對象實現,好消息是全部瀏覽器使用的方法和特性都是一致的,對象的建立方式纔是瀏覽器須要考量的差別;
2四、非同步請求(asynchronous request)在後臺運做,不用讓腳本等待,因此幾乎全部的Ajax請求都是異步的;
2五、Ajax請求的類型(type)很是重要,不僅反映傳送到服務器的事物,也反映請求的意圖;
2六、GET:主要用於從服務器取得數據,而不影響服務器上的其它東西,若是須要也能透過URL傳入小量數據給服務器;
2七、POST:一般與傳送數據到服務器有關,傳送後的服務器狀態一般有所改變,以響應傳入的數據,例如存儲數據到數據庫中;
2八、自定義的AjaxRequest對象減輕了製做Ajax請求的痛苦過程;
2九、send(type,url,handler,postDataType,postData);
30、type 請求的類型GET或POST,url:服務器的url,數據也能夠包裝在url裏面;
3一、postDataType:被傳送的數據類型;handle:用於處理響應的回調函數;
3二、postData:被傳送的數據;
3三、自定義的請求處理函數必須爲請求而設置,用於請求完畢時被調用;
3四、調用AjaxRequest對象的send()方法後,有個Ajax請求被傳送到服務器,網頁則先行3五、處理網頁事物,同時服務器也在處理請求,這就是Ajax的異步,由於異步處理,網頁無需暫停,用戶體驗不會爲此停歇;
3六、HTTP的請求和響應爲網絡瀏覽器所用,從網絡服務器上獲取HTML網頁。Ajax的請求與響應與HTTP的很是類似,但有幾項關鍵差別;Ajax版隨時可能發生,不見得牽涉到HTML數據的遞送,Ajax最大的好處之一,就是它能請求任何類型的數據;
3七、Ajax的請求和響應爲實時發生,一般不會干涉網頁的使用性,當網頁上的一小塊須要更新時,用戶不用停下來等着整個網頁從新載入,那塊區域可於「背景」載入,用戶能夠繼續瀏覽網頁其它部分並與之交互;
3八、GET和POST的主要區別在於服務器是否經歷狀態改變,例如存儲數據到數據庫;
自定義的AjaxRequest的角色是標準對象XMLHttpRequest的「外包裝」,用於簡化Ajax的使用;
3九、交互式網頁就從請求對象開始;
40、客戶端腳本使用自定義的回調函數處理Ajax請求的響應;
4一、AjaxRequest對象的方法具備對Ajax響應數據的訪問權。getResponseText():以純文本的格式取得Ajax響應裏地訪問與getResponseXML():以結構XML代碼的格式取得Ajax響應裏的數據;
4二、Ajax請求在state市4(loaded)且status是200(OK)時,表示徹底成功;
4三、handleRequest()函數只有在同時達成這兩個狀態時起身工做;
4四、暫時禁用按鈕是一個絕佳的方案,然後於handleRequest()函數中啓用;
4五、PHP是種可在服務器上執行任務的腳本語言;
4六、大多數時候,除了最簡單的請求,全部Ajax請求都牽涉到服務器端接受來自客服端的數據,而後根據數據而行動;
4七、運行PHP須要調校一下你的網絡服務器;
4八、URL-encoded格式:每段數據須要有本身的名稱和值,中間插入(=),每對名稱/值之間則用&區隔;
4九、代碼之間的共享使得網頁更加精簡。 

 
 



**

小結:

**《Head First JavaScript》是一本入門書,語言通俗易懂,幽默風趣,不少部分比較偏基礎,可是又不失細節,本書以實例爲指導來講明JavaScript的一個個部分,確實能加強初學者對JavaScript的做用的理解,總的來講看完本書,我感受收穫仍是很大的,筆記只是本書的不多的一部分,若是對JavaScript有必定了解,可是感受又不是很清楚的同窗,推薦你們閱讀一下,必定會頗有收穫的。本人也是前端的初學者,以後會慢慢再跟你們分享本身學習過程當中看的書,作的筆記,期待跟你們一塊兒進步,本文只是我的筆記,若是有錯誤的地方,但願你們可以指出,但願跟你們一塊兒探討交流。


相關文章
相關標籤/搜索