




已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
破JavaScript,而后立,趙子?xùn)| T+研發(fā)本部,暢捷通信息技術(shù)股份有限公司2013年8月,目錄,1.關(guān)于JavaScript 2.基礎(chǔ) 3.其它 4.推薦閱讀,1.1 關(guān)于JavaScript 始于1995,1995年,Brendan說服Netscape的老板說在netscape中需要一個(gè)屬于自己的腳本語(yǔ)言,在考察了Scheme和Java之 后,10天之內(nèi),Brendan實(shí)現(xiàn)了JavaScript引擎的基本原型。,1.2 JavaScript引擎,Mozilla SpiderMonkey,第一款JavaScript引擎,由Brendan Eich在Netscape Communications時(shí)編寫,用于Mozilla Firefox 1.03.0版本。 Rhino,由Mozilla基金會(huì)管理,開放源代碼,完全以Java編寫。 TraceMonkey,基于實(shí)時(shí)編譯的引擎,其中部份代碼取自Tamarin引擎,用于Mozilla Firefox 3.53.6版本。 JaegerMonkey,德文Jger原意為獵人,結(jié)合追蹤和組合碼技術(shù)大幅提高性能,部分技術(shù)借鑿了V8、JavaScriptCore、WebKit,用于Mozilla Firefox 4.0以上版本。 IonMonkey,可以對(duì)JavaScript編譯后的結(jié)果進(jìn)行優(yōu)化,用于Mozilla Firefox 18.0以上版本。 OdinMonkey,可以對(duì)asm.js進(jìn)行優(yōu)化,用于Mozilla Firefox 22.0以上版本。 Google V8,開放源代碼,由Google丹麥開發(fā),是Google Chrome的一部分。 微軟 Chakra (JScript引擎),中文譯名為查克拉,用于Internet Explorer 9的32位版本1及Internet Explorer 10。 Opera Linear A,用于Opera 4.06.1版本。 Linear B,用于Opera 7.09.2版本。 Futhark,用于Opera 9.510.2版本。 Carakan,由Opera軟件公司編寫,自O(shè)pera10.50版本開始使用。,1.3 JavaScript框架,Jquery Dojo ExtJS Prototype YUI Library Rico script.aculo.us ,1.4.1 開源協(xié)議-BSD,BSD開源協(xié)議是一個(gè)給于使用者很大自由的協(xié)議?;旧鲜褂谜呖梢浴睘樗麨椤?可以自由的使用,修改源代碼,也可以將修改后的代碼作為開源或者專有軟件再發(fā)布。但”為所欲為”的前提當(dāng)你發(fā)布使用了BSD協(xié)議的代碼,或則以BSD協(xié)議代碼為基礎(chǔ)做二次開發(fā)自己的產(chǎn)品時(shí),需要滿足三個(gè)條件:如果再發(fā)布的產(chǎn)品中包含源代碼,則在源代碼中必須帶有原來代碼中的BSD協(xié)議。如果再發(fā)布的只是二進(jìn)制類庫(kù)/軟件,則需要在類庫(kù)/軟件的文檔和版權(quán)聲明中包含原來代碼中的BSD協(xié)議。不可以用開源代碼的作者/機(jī)構(gòu)名字和原來產(chǎn)品的名字做市場(chǎng)推廣。 對(duì) 商業(yè)集成很友好的協(xié)議。而很多的公司企業(yè)在選用開源產(chǎn)品的時(shí)候都首選BSD協(xié)議,因?yàn)榭梢酝耆刂七@些第三方的代碼,在必要的時(shí)候可以修改或者二次開發(fā)。,1.4.2 開源協(xié)議- Apache Licence,Apache Licence是著名的非盈利開源組織Apache采用的協(xié)議。該協(xié)議和BSD類似,同樣鼓勵(lì)代碼共享和尊重原作者的著作權(quán),同樣允許代碼修改,再發(fā)布(作為開源或商業(yè)軟件)。需要滿足的條件也和BSD類似:需要給代碼的用戶一份Apache Licence如果你修改了代碼,需要再被修改的文件中說明。在延伸的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來代碼中的協(xié)議,商標(biāo),專利聲明和其他原來作者規(guī)定需要包含的說明。如果再發(fā)布的產(chǎn)品中包含一個(gè)Notice文件,則在Notice文件中需要帶有Apache Licence。你可以在Notice中增加自己的許可,但不可以表現(xiàn)為對(duì)Apache Licence構(gòu)成更改。Apache Licence也是對(duì)商業(yè)應(yīng)用友好的許可。使用者也可以在需要的時(shí)候修改代碼來滿足需要并作為開源或商業(yè)產(chǎn)品發(fā)布/銷售。,1.4.3 開源協(xié)議- GPL(1),我們很熟悉的Linux就是采用了GPL。GPL協(xié)議和BSD, Apache Licence等鼓勵(lì)代碼重用的許可很不一樣。GPL的出發(fā)點(diǎn)是代碼的開源/免費(fèi)使用和引用/修改/衍生代碼的開源/免費(fèi)使用,但不允許修改后和衍生的代 碼做為閉源的商業(yè)軟件發(fā)布和銷售。這也就是為什么我們能用免費(fèi)的各種linux,包括商業(yè)公司的linux和linux上各種各樣的由個(gè)人,組織,以及商 業(yè)軟件公司開發(fā)的免費(fèi)軟件了。GPL協(xié)議的主要內(nèi)容是只要在一個(gè)軟件中使用(”使用”指類庫(kù)引用,修改后的代碼或者衍生代碼)GPL 協(xié)議的產(chǎn)品,則該軟件產(chǎn)品必須也采用GPL協(xié)議,既必須也是開源和免費(fèi)。這就是所謂的”傳染性”。GPL協(xié)議的產(chǎn)品作為一個(gè)單獨(dú)的產(chǎn)品使用沒有任何問題,還可以享受免費(fèi)的優(yōu)勢(shì)。,1.4.3 開源協(xié)議- GPL(2),由于GPL嚴(yán)格要求使用了GPL類庫(kù)的軟件產(chǎn)品必須使用GPL協(xié)議,對(duì)于使用GPL協(xié)議的開源代碼,商業(yè)軟件或者對(duì)代碼有保密要求的部門就不適合集成/采用作為類庫(kù)和二次開發(fā)的基礎(chǔ)。其它細(xì)節(jié)如再發(fā)布的時(shí)候需要伴隨GPL協(xié)議等和BSD/Apache等類似。,1.4.4 開源協(xié)議- LGPL,LGPL是GPL的一個(gè)為主要為類庫(kù)使用設(shè)計(jì)的開源協(xié)議。和GPL要求任何使用/修改/衍生之GPL類庫(kù)的的軟件必須采用GPL協(xié)議不同。LGPL 允許商業(yè)軟件通過類庫(kù)引用(link)方式使用LGPL類庫(kù)而不需要開源商業(yè)軟件的代碼。這使得采用LGPL協(xié)議的開源代碼可以被商業(yè)軟件作為類庫(kù)引用并 發(fā)布和銷售。但是如果修改LGPL協(xié)議的代碼或者衍生,則所有修改的代碼,涉及修改部分的額外代碼和衍生的代碼都必須采用LGPL協(xié)議。因此LGPL協(xié)議的開源 代碼很適合作為第三方類庫(kù)被商業(yè)軟件引用,但不適合希望以LGPL協(xié)議代碼為基礎(chǔ),通過修改和衍生的方式做二次開發(fā)的商業(yè)軟件采用。 GPL/LGPL都保障原作者的知識(shí)產(chǎn)權(quán),避免有人利用開源代碼復(fù)制并開發(fā)類似的產(chǎn)品,1.4.5 開源協(xié)議- MIT,MIT是和BSD一樣寬范的許可協(xié)議,作者只想保留版權(quán),而無任何其他了限制.也就是說,你必須在你的發(fā)行版里包含原許可協(xié)議的聲明,無論你是以二進(jìn)制發(fā)布的還是以源代碼發(fā)布的.,目錄,2.1 程序員困境:底層編碼能力正逐步喪失,按照已有的思路去開發(fā),無需自己動(dòng)腦、去思考。如果長(zhǎng)期在這樣的環(huán)境下工作,并且也沒有在外部進(jìn)行提升和開闊,多年以后,你會(huì)發(fā)現(xiàn)自己處于很可憐的位置在公司內(nèi)部或團(tuán)隊(duì)里聲稱是“專家”,然而不幸地是,你卻不能在市場(chǎng)找到一個(gè)與之平等的工作。我們通過編碼謀生,但環(huán)境卻正在摧毀我們這種謀生的能力。,2.2 類型,undefined null boolean Number String = 與=,2.2 類型(2),為什么T+系統(tǒng)的數(shù)值型整數(shù)位+小數(shù)位加起來=15位? 2 52 2.2204516,2.3 作用域,var 與 無var 內(nèi)部屬性scope,2.3 作用域(2),2.3 作用域(3),2.4 和 . 運(yùn)算符,var o = id: “11111”; Add:function() return 1 o.id o“id”,2.5 閉包,指的是一個(gè)擁有許多變量和綁定了這些變量的環(huán)境的表達(dá)式(通常是一個(gè)函數(shù)),因而這些變量也是該表達(dá)式的一部分。 var person=function() var name=“default”; retturn getName:function() return name; Print(); Print(person.getName();,2.6 閉包注意事項(xiàng),內(nèi)存泄露: /tech/web/2008/5679.asp 上下文環(huán)境(this):,2.7 Class在哪里?,JavaScript原型化繼承的面向?qū)ο竽_本語(yǔ)言,2.8 面向?qū)ο笕齻€(gè)特性:封裝、繼承和多態(tài),閉包,var ,prototype,2.9 JSON 與Ajax,序列化的javascript對(duì)象 Ajax: Asynchronous JavaScript and XML,2.10 JavaScript響應(yīng),在瀏覽器中,用于執(zhí)行JavaScript和更新用戶界面的進(jìn)程通常被稱為UI線程。UI線程的工作基于一個(gè)簡(jiǎn)單的隊(duì)列系統(tǒng),任務(wù)會(huì)被保存到隊(duì)列中知道進(jìn)程空閑。一旦空閑,隊(duì)列中的下一個(gè)任務(wù)就會(huì)被重新提取出來進(jìn)行執(zhí)行。這些任務(wù)要么是JavaScript代碼運(yùn)行,要么就是執(zhí)行UI更新,包括重繪和重排。然而,在這個(gè)進(jìn)程中,每一次輸入都可能導(dǎo)致一個(gè)或多個(gè)任務(wù)被加入隊(duì)列中。,2.10 JavaScript響應(yīng)(2),目錄,1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 退訂協(xié)議書范本
- 公司股東合同協(xié)議
- 舊房折建協(xié)議書
- 進(jìn)口車銷售合同協(xié)議
- 連鎖披薩店轉(zhuǎn)讓合同協(xié)議
- 委托代理買房合同書
- 進(jìn)出口牛肉銷售合同協(xié)議
- 《輿論學(xué)》本科筆記
- 轉(zhuǎn)讓合同解除協(xié)議書范本
- 個(gè)體員工合同協(xié)議書
- 材料力學(xué)答案第四版單輝祖課后答案
- NB/T 10742-2021智能化綜采工作面設(shè)計(jì)規(guī)范
- YY/T 1226-2022人乳頭瘤病毒核酸(分型)檢測(cè)試劑盒
- GB/T 5053.1-1985汽車與掛車之間24N型電連接器
- GB/T 21709.13-2013針灸技術(shù)操作規(guī)范第13部分:芒針
- GB/T 1723-1993涂料粘度測(cè)定法
- 全員安全生產(chǎn)意識(shí)提升教育培訓(xùn)
- Z3050搖臂鉆床殼體蓋機(jī)加工工藝及夾具設(shè)計(jì)
- 農(nóng)民專業(yè)合作社賬務(wù)處理實(shí)務(wù)-最合理最全面
- 傳統(tǒng)養(yǎng)生課程標(biāo)準(zhǔn)
- 自動(dòng)噴水滅火系統(tǒng)PPT(完整版)
評(píng)論
0/150
提交評(píng)論