<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    美麗涵涵童裝店--說我博客名字,給你們打折!
    隨筆 - 82  文章 - 266  trackbacks - 0
    <2007年7月>
    24252627282930
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234


    點擊這里給楊愛友發消息
    美麗涵涵童裝店
    說我博客名字,給你們打折!

    常用鏈接

    留言簿(6)

    隨筆分類

    隨筆檔案

    文章檔案

    好友的BLOG

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

     

    序言

    寫本文的目的是對最近看過的篇幅進行簡單的總結,把我認為重點應該記住的東西寫出來,方便以后查看回憶。

    ECMAScript基礎

    Ø        20世紀90年代,為了提高系統運行速度,各大廠商分別開發了自己的script腳本,用于在客戶端進行數據校驗等功能,但開發出來的網頁不能夠跨平臺運行。隨著業界的擔心,制定一個script標準勢在必行。ECMAScript就是規定了能適應于各種宿主環境的script核心語法規則。一個完整的javascript庫包括三部分:ECMAScriptDOMBOM

    Ø        原始值:是存儲在棧中的簡單數據段,也就是說,他們的值直接存儲在變量訪問的內存空間。

    Ø        引用值:是存儲在堆中的對象,也就是說,存儲在變量處的值是一個指針,指向存儲對象的內存處。

    Ø         5中原始值:StringNumberObject undefined boolean

    Undefined 聲明的變量未初始化;

    Null 表示尚未存在的對象;

    Number 5個特殊值也屬于此類型:Number.max_valueNumber.min_valueNumber.positive_infinity
    Number.negative_infinityNAN

    相關的方法有:isFinit()isNaN()

    Ø        typeOf 檢查變量類型;intenseOf 檢測對象類型。

    Ø        5種引用類型:

    Number類型相關方法:paserInt() paserFloat() toFixed()toExponential()toPrecision()
    String類型包含的常用方法有:charAt() charCodeAt() indexOf() lastIndexOf() splice() contact() lowerCase() toUpperCase()

    Ø         函數理解:JS中的函數其實是一個功能完整的對象,類Function可以創建任何類型的函數,也即對象,對象名或叫函數名只是一個指向對象的指針,所以函數名可以做為參數傳遞給另外一個函數。

    第三章 對象基礎

    JS中有沒有類,為何說JS中沒有真正的類?什么才叫正式的類?

    JS中有三種對象:本地對象、內置對象、宿主對象。

    本地對象:獨立于宿主環境的ECMAScript定義的對象(類?)最常用的有ArrayDate類。

    Ø         Array類:可以聲明一個變量直接進行附值,但是不能用數組的一些方法?(試驗)數組Array對象包含的方法有:toString()valueOf()toLocalString()join()contact()slice()pushpop()shift()unshift()reverse()sort()splice()

    Ø         Date對象:以后再仔細的看。

    內置對象:類似JSP中的內置對象,不需要開發者實例化即可使用,調用里面的方法也不需要指出對象的引用,當然了,內置對象都屬于本地對象,在JS中提供兩個內置對象:globalMath對象。

    Ø         Global對象:它包含很多方法和和屬性,但用代碼來測試他又不是個對象,不解,為什么ECMA不叫他是個對象。它包含的方法有:siNan()isFinite()parseInt()parseFloat()encodeURL()decodeURL()eval()JS提供的一些特殊值及所有本地對象的構造函數都是Global對象的屬性,它包含的特殊值有:undefinedNaNinfinityObjectArrayFunctionBooleanStringNumberDateRegExpError…….and so on

    Ø         Math對象:一發很復雜、很有用、必須要熟記其所有方法的對象。它包含很多屬性,大多是數學計算時的特殊值,例如:ELN10LOG2Log10EPISQRT1_2sqrt2。它包含的方法有:min()max()abs()random(),舍入操作的ceil()floor()round(),與指數有關的方法exp()log()pow()sqrt()及全部的三角函數求值方法。

    JS中所有的方法和屬性都是public類型的。

    JS中,對象名只是一個引用,指向對象的內存地址。JAVA中每個對象都獨立站用一快內存空間,變量名即是對象的存儲處?

    ECMAScript中沒有StringBuffer對象,要通過自己編寫代碼來創建具有此功能的對象。用Array對象可以使用同樣的功能。

    ProtoType對象的所有屬性和方法都會被傳遞給那個類的所有實例。

    每個對象都有ProtoType屬性,可以通過它更改或添加任何本地、內置對象的方法。

    定義類(對象):有5種常用的方式,它們分別是構造函數方式、原型方式、混合的構造函數/原型方式、動態原型方式、混合工廠方式。我覺得混合方式和動態原都比較好,在對象比較復雜的情況易用混合方式,在對象定義簡單的情況下用動態原型方式更為直觀。

    第四章 繼承

    為了安全,不能繼承本地類和宿主類?

    JS中沒有真正意義上的繼承,都是模仿繼承機制,常用的有三模仿繼承的機制:對象冒充、call()方法、apply()方法(實驗)、原型鏈方式(實驗)。通過比較還是用混合的方式比較好,用call()方法繼承屬性,用原型鏈方式繼承方法。

    另外利用第三方JS庫可以使用其他的繼承方式,如:zInheritxbObjects

    第五章 瀏覽器中的JS

    前三張都是對核心ECMAScript的討論,以下章節都是與WEB有關的內容。

    XHTML中大于、小于等特殊方法不能被正確識別?(P115(實驗)

    BOM:提供了獨立于內容而與瀏覽器窗口進行交互的對象。

    Ø         Window對象表示整個瀏覽器窗口。如果使用框架,每個框架都有自己的window對象,存放在Frames集合中,調用window對象的屬性和方法時,不必要明確引用它。

    Window對象的方法有:

    窗口操作:moveBy()moveTo()resizeBy()resizeTo()

    獲取位置和大小:screenLeft()screenTop()

    導航和打開新窗口:JS可以導航到指定的URL,并用window.open()方法打開窗口,該方法接受4個參數,即要載入頁面的URL、新窗口的名字、特性字符串、是否替換當前頁面的Boolean值。這個方法返回一個window對象的引用值。Openner屬性存放打開它的窗口的引用。

    彈出系統對話框:alert()confirm()prompt()

    狀態欄:window對象的兩個屬性statusdefaultStatus

    暫停和時間間隔:setTimeOut()clearTimeout()setInerval()clearInterval()。(練習使用)

    歷史:history對象完成。

    Ø         Document對象:由一系列的集合組成,如anchorsappletsembedsformsimageslinks。方法有write()writeln()open()close()

    Ø         Location對象:表示載入窗口的URL,他也可以解析URL,它包含的屬性有hashhosthostnamepathnameportprotocolsearch。方法有:replace()reload()toString()

    Ø         Navigator對象:一個重要的用途就是檢測瀏覽器類型及版本,在chapter 8將詳細介紹。

    Ø         Screen對象:用于用戶獲取屏幕信息,它包含的屬性有availHeightavailWidthcolorDepthHeightwidth

    第六章 DOM基礎

     

    起源:XML是從SML派生而來的,SGML有許多奇怪的語法規則,解析SGML文檔非常困難。XML去掉了SGML許多另人頭疼的隨意語法,使解析XML變得容易。XML的主要目的是使用文本以結構化的方式來表示數據。ML—標記語言。(待續)

    第八章 檢測瀏覽器和操作系統

     

    Ø         對象特征檢測法:判斷瀏覽器是否支持某對象/特征,而不在乎瀏覽器的真正身份,此方法簡單,問題是不能檢測瀏覽器的具體類型。

    Ø         User_agent檢測法:原理:每個訪問望阿站的程序都會提供一個user_agent字符串來向服務器確定它的身份。用mavigator.userAgent可以得到此字符串,這個字符串是user_agent方式檢測瀏覽器的基礎。

    當然了記住各瀏覽器的user_agent字符串將給你帶來編程時的方便,但是好象不容易。(有必要嗎?)

    user_agent字符串簡史:了解它,可以讓你更容易第記住瀏覽器的user_agent字符串。

    Ø         瀏覽器檢測腳本:此部分屬于公用代碼,應該寫到一個公用文件中,每個項目都可以直接用,我所參與的項目中有這些腳本文件嗎?

    navigator.appVersion不就可以確定瀏覽器版本了嗎?為什么還要用user_agent方式獲取?

    書中只討論windowsmacintosh平臺?

    練習:寫一個用于比較來年感個版本號大小的函數;寫一個用于檢測是否為IE和檢測IE版本號的函數。

    Ø         OS檢測腳本:用navigator.platform來檢測OS

    練習:寫一個檢測windows版本的程序。

    第九章 事件

    事件流:IE的冒泡型事件留、Netscape的捕獲型事件留及DOM事件留。

    事件處理函數:給元素附加事件處理函數在IEDOM有不同的實現方式。在IE中每個元素都有attachEvent()detachEvent()方法;在DOM中有對應的addEventListener()removeEventListener()方法。

    事件對象:包含發生事件時鼠標、鍵盤等信息的對象。

    IE中這些信息被包含在event對象中。熟記event對象的屬性和方法P234

    事件類型:

    Ø         熟記鼠標事件:clickdblclickmouseoutmouseovermouseupmousemove

    每個鼠標事件都會給event對象的以下屬性添入值:坐標屬性、Type屬性、srcElement屬性、shiftKey ctrlKey altKeybutton屬性。鼠標事件的順序。

    此節內容可以結合第十一章內容學習。

    Ø         鍵盤事件:keyDown—鍵盤上按下某鍵時觸發,針對所有鍵。keyPress—按下鍵并產生一個字符時觸發,所以按下shiftartctrl及方向鍵時并不會觸發此事件。

    HMTL事件load事件、unload事件、select事件、change事件、resize事件、scroll事件blur事件、body的兩個屬性—scrollLeftscrollTop。結合第十一章學習。

    第十章 高級DOM技術

    CSS中樣式特性名字的書寫與JS中不同,在Style對象中,兩個單詞的樣式表示方法是匈牙利表示法。

    Style對象可以操縱內聯樣式的值。它有個cssText屬性,存儲此CSS樣式的字符串。

    DOM樣式的方法:

    提示:此類方法在IE中不實用。DOMStyle對象中包含方法:getPropertyValue()getpropertyPriority()item()removeProperty()serProperty()

    自定義鼠標提示:原意鼠標移到某元素上顯示title提示;

    現意當鼠標移到某元素上時,讓某他原本隱藏的DIV顯示在某特定位置(一般在鼠標旁邊)

    可折疊區域:介紹一個具體應用。很不錯的,練習。

    訪問樣式表:樣式表<style/>元素中或在外部樣式表中定義的CSS樣式。

    Document.styleSheets可以獲得樣式表的引用。它有一些常用的屬性—disabledtype等。

    樣式表引用對象有個cssRulesrules屬性,它包含樣式表中所有的CSS規則,它是一個集合。

    最終樣式:它由所有內聯樣式和CSS規則計算出的最終結果,也即其作用的CSS樣式元素集合。在IE中可以用style.currentStyle來獲得。

    innerTextinnerHTML

    不解:oDiv.innerText = oDiv.innerText將刪除oDiv標簽。

    IE中的范圍:

    創建范圍—creatTextRange()

    選擇某個區域:findText()

    移動選區:move()moveStart()moveEnd()expand()

    與范圍內容交互:text屬性和pasteHTML()方法;

    折疊范圍:collapse() 就是清楚removeclear的意思?

    比較范圍:compareEndPoints()isEqual()isRange()

    復制范圍:duplicate()

    范圍的引用:值得一看,30秒鐘。

    第十一章 表單和數據完整性

    <form/>元素的特性:methodactionenctypeacceptaccept_charset

    表單元素的共性:disabledformblurfocus()onblur()onfocus()

    僅提交一次:當點擊提交按鈕后禁用它,是用戶不會重復提交多次。

    不能用submit按鈕并用onclick禁用,因為在表單提交前已經被禁用,這講導致表單不被提交,怎么用普通的button就可以?

    Reset:即使使用reset()方法, onreset事件函數仍會被觸發。

    文本框事件:blurfocuschangeselect,其中change事件是在文本框失去焦點后才被觸發。

    自動選中文本:一個具體應用。當獲到焦點時便選中文本。

    自動切換到下一個:一個具體應用。代碼寫得不錯,值得一看。

    限制textarea的字符數:雖然textarea不能用maxlength屬性來限制最大輸入長度,但仍可以設置manlength屬性可,并可以通過getAttibute()來獲取這個值。

    允許/阻止文本框中的字符:阻止無效字符,只允許輸入有效字符。看代碼,挺有用的。

    不要忘記粘貼:禁止粘貼;失去焦點時進行驗證。

    使用上下方向鍵操作數字文本(自增、自減):

    列表和組合框:只要給 <select/>元素添加size特性就可以使組合框變為列表。Multiple屬性用于設置是否可多選,默認不能。

    刪除選項:將某想置為null;用remove()方法。

    移動選項:可以直接從一個列表框移到另一個列表框?(實驗)

    重新排序選項:重要用到DOM中的insertBefore()函數。

    自動提示文本框:創建匹配的Array數組;獲取匹配的只的Array;將選中的條目添加到文本框。再看代碼,寫得很好。
     

    第十二章 對表格排序

    這一章探索了如何JavaScript將很多基于服務器端的功能轉移到客戶端,即對HTML表格進行排序。這一章完全沒有新的語法知識,完全是對以前章節知識的應用。練習用一下一切OK

    知識要點:Array對象的sort()方法可以接受一個客戶化的比較函數作為參數。

    建立一個能處理各種數據類型的比較函數。

    Reverse()倒序。

    <> 可以對StringDateNumber類型的數據進行比較?

    可以為HTML元素添加自定義特性。

    第十三章 拖放

    系統拖放:由操作系統處理完成的拖放行為;

    模擬拖放:創建可以跟著鼠標移動的絕對定位層。

    另外還可以利用aDragDrop庫來實現拖放功能。

    第十四章 錯誤處理

     

    JS中的錯誤:發生在解析(編譯)時的語法錯誤;

    JS中的異常:在運行時發生。如window.yangaiyou();語法正確,但會發生異常。

    l         onerror對象:在window對象和圖象對象?上都有onerror事件處理函數,當頁面發生錯誤時,onerror事件將在window對象上觸發。當頁面上的圖象不能載入時會在image對象上觸發。

    可以這樣定義onerror函數

    window.onerror = function(sMessage,sUrl,sLine){};

    onerror函數的三個參數用于確定錯誤確切的信息,代表的意思依次為:錯誤信息;發生錯誤的文件;發生錯誤的行號。

    l         Try...catch語句:

    Catch語句捕獲的是一個Error對象,他有namemessage屬性,name指明錯誤的類型或叫名字;message指明具體的錯誤信息。

    也可以用類似throw new Error(“發生了錯誤!”)的語句來拋出異常信息。

    第十五章 javascript中的XML


    l        
    IE中對XML DOM的支持:是基于ActiveXMXXML庫。用ActiveXObject類來創建ActiveX對象,形如

    Var oXmlDom = new ActiveXObject(“Microsoft.XmlDom”);

    參數為要實例化的ActiveX對象的字符串代號。

    如何確保使用最新的XML DOM

    創建XML DOM 對象的下一步自然就是載入XML文件,XML DOM提供了兩種方法來載入XML文件:load()loadXML()。前者用于從服務器端載入XML文件;后者可以直接輸入字符串來載入。如:

    oXmlDom.load(“./treeAction.do”);

    執行完這行代碼oXmlDom對象就會包含能表示XML文件結構的一個DOM文擋,這樣就可以使用DOM所有的特性和方法了。

    默認采用異步方式載入,當readyState值發生變化時會觸發onreadystatechange函數,當其值為4時表示XML文件已完全載入,通常這時就要調用回調函數。

    我們應該在XML文件載入后立即檢查錯誤,錯誤信息都包含在parseError對象中,我們可以自己創建錯誤提示,通常是由于XML文件格式錯誤造成的。

    AJAX必備知識。

    l         xPath小語言:

    它提供了如何定位一個或多個結點的功能。它分兩部分:上下文結點;結點模式。前者給出要匹配文檔的開始位置;后者是一個字符串形式的選擇器,可以想象成正則表達式。

    IE中提供selectNodes()方法來返回匹配的結點集合,參數為要匹配的字符串(正則表達式)。形如:

    oXmlDom.documentElement.selectNodes(“employee/name”);

    選擇了所有<employee/>元素下的<name/>元素。

    l         XSLT 可擴展樣式表語言轉換:

    XSLT可以對XML文件進行操作,將其轉換成其他的文本格式,入HTMLXSLT文件稱為樣式表,由一些模板組成,通過為不同元素和條件定義模板,XSLT成了XML文件的轉換器。

    第十六章 客戶端與服務器端的通信

    第十七章 Web服務

    第十八章 與插件進行交互

    第十九章 部署問題

    第二十章 JS的文萊

    posted on 2007-07-01 13:50 楊愛友 閱讀(1948) 評論(10)  編輯  收藏 所屬分類: java相關技術

    FeedBack:
    # re: javascript讀書筆記 2007-07-03 11:25 飄搖
    第一頁有個錯別字  回復  更多評論
      
    # re: javascript讀書筆記 2007-07-03 11:31 飄搖
    終于走向正路,哈哈 繼續努力!  回復  更多評論
      
    # re: javascript讀書筆記 2007-07-03 12:23 
    哪個字錯了里,給我改過來。  回復  更多評論
      
    # re: javascript讀書筆記 2007-07-04 08:55 飄搖
    寫本*問*的目的是對最近看過的篇幅進行簡單的總結,"問"對嗎  回復  更多評論
      
    # re: javascript讀書筆記 2007-07-04 16:57 飄搖
    打開一個網頁時 總是不斷的跳出好多網頁,但是沒死機,這是為什么 ,該怎么辦  回復  更多評論
      
    # re: javascript讀書筆記 2007-07-04 17:02 
    或者裝個攔截工具,或者叫他們網站的開發者把代碼改一下,后者比較好,哈哈~~  回復  更多評論
      
    # re: javascript讀書筆記[未登錄] 2007-07-06 16:05 小祝
    呵呵~記得8號來接我哈~~  回復  更多評論
      
    # re: javascript讀書筆記 2007-07-06 16:24 
    盡量吧,單愿沒有忘記,哈哈  回復  更多評論
      
    # re: javascript讀書筆記 2007-10-26 08:16 fds
    fdsgfds  回復  更多評論
      
    # re: javascript讀書筆記 2008-01-15 09:52 小吳
    嚴重支持!!!寫的很好!!!可見有一定的基礎!!但是進步的空間還很大!!
    建議嘗試自己寫一個小框架(對提高設計能力有很大的幫助)  回復  更多評論
      
    美麗涵涵童裝店
    親,說我博客名字,給你們打折!
    主站蜘蛛池模板: 久久国产亚洲观看| 国产免费AV片在线观看| 亚洲v高清理论电影| 好爽好紧好大的免费视频国产| 国产麻豆成人传媒免费观看| 男女污污污超污视频免费在线看| 亚洲国产成a人v在线| 无码欧精品亚洲日韩一区| 亚洲精品岛国片在线观看| 免费看www视频| 黄+色+性+人免费| 99re6在线视频精品免费下载| 精品一区二区三区免费观看 | 国产精品视频全国免费观看| 亚洲午夜精品一区二区麻豆| 亚洲狠狠ady亚洲精品大秀| 国产亚洲精久久久久久无码| 亚洲偷自拍拍综合网| 亚洲A∨精品一区二区三区| 在线观看免费国产视频| 一二三四在线播放免费观看中文版视频 | 特级毛片全部免费播放a一级| 亚洲AV一二三区成人影片| 亚洲视频中文字幕| 久久久亚洲精品视频| 亚洲成av人在线视| 亚洲成AV人片在| 国产成人A人亚洲精品无码| 亚洲熟妇无码八AV在线播放| 亚洲日韩VA无码中文字幕| 亚洲视频在线精品| 亚洲精品一级无码鲁丝片| 亚洲精品线路一在线观看| 亚洲区日韩区无码区| 亚洲欧洲自拍拍偷精品 美利坚 | 亚洲综合色一区二区三区| 国产.亚洲.欧洲在线| 亚洲色少妇熟女11p| 亚洲av日韩综合一区二区三区| 国产AV无码专区亚洲AV麻豆丫| 色婷婷亚洲一区二区三区|