摘要:介紹大叔整理的《深入理解JavaScript系列》已經快20篇了,不知道大家看的如何了? 除了大家熟知的閉包、原型、作用域以外,不知道大家是否真正理解了JavaScript的核心特性,在網上發現幾個小題目非常有意思,正好適合考察大家對JavaScript的理解。如果大家有興趣(或者自認為對JavaScript了解還不錯的人),可以嘗試著回答一下下面5個題目的輸出結果(不要google或baidu哦)。至于正確結果嘛,自己可以將代碼復制到瀏覽器里就可以看到了(稍后這兩天,我會將詳細的解釋單獨發帖整理出來)。PS:大膽點,不管結果對不對,都把你的答案貼出來(最好帶有自己的想法,后面我們和準確解釋做 閱讀全文
深入理解JavaScript系列(19):求值策略(Evaluation strategy)
2012-02-08 09:50 by 湯姆大叔, 18713 閱讀, 35 推薦, 收藏,
摘要:介紹本章,我們將講解在ECMAScript向函數function傳遞參數的策略。計算機科學里對這種策略一般稱為“evaluation strategy”(大叔注:有的人說翻譯成求值策略,有的人翻譯成賦值策略,通看下面的內容,我覺得稱為賦值策略更為恰當,anyway,標題還是寫成大家容易理解的求值策略吧),例如在編程語言為求值或者計算表達式設置規則。向函數傳遞參數的策略是一個特殊的case。http://dmitrysoshnikov.com/ecmascript/chapter-8-evaluation-strategy/寫這篇文章的原因是因為論壇上有人要求準確解釋一些傳參的策略,我們這里給出 閱讀全文
深入理解JavaScript系列(18):面向對象編程之ECMAScript實現(推薦)
2012-02-06 09:27 by 湯姆大叔, 23380 閱讀, 39 推薦, 收藏,
摘要:介紹本章是關于ECMAScript面向對象實現的第2篇,第1篇我們討論的是概論和CEMAScript的比較,如果你還沒有讀第1篇,在進行本章之前,我強烈建議你先讀一下第1篇,因為本篇實在太長了(35頁)。英文原文:http://dmitrysoshnikov.com/ecmascript/chapter-7-2-oop-ecmascript-implementation/注:由于篇幅太長了,難免出現錯誤,時刻保持修正中。在概論里,我們延伸到了ECMAScript,現在,當我們知道它OOP實現時,我們再來準確定義一下:ECMAScript is an object-oriented progra 閱讀全文
深入理解JavaScript系列(17):面向對象編程之概論
2012-02-03 09:05 by 湯姆大叔, 28244 閱讀, 40 推薦, 收藏,
摘要:介紹在本篇文章,我們考慮在ECMAScript中的面向對象編程的各個方面(雖然以前在許多文章中已經討論過這個話題)。我們將更多地從理論方面看這些問題。 特別是,我們會考慮對象的創建算法,對象(包括基本關系 - 繼承)之間的關系是如何,也可以在討論中使用(我希望將消除之前對于JavaScript中OOP的一些概念歧義)。英文原文:http://dmitrysoshnikov.com/ecmascript/chapter-7-1-oop-general-theory/概論、范式與思想在進行ECMAScript中的OOP技術分析之前,我們有必要掌握一些OOP基本的特征,并澄清概論中的主要概念。ECM 閱讀全文
深入理解JavaScript系列(16):閉包(Closures)
2012-01-31 08:44 by 湯姆大叔, 53981 閱讀, 67 推薦, 收藏,
摘要:介紹本章我們將介紹在JavaScript里大家經常來討論的話題 —— 閉包(closure)。閉包其實大家都已經談爛了。盡管如此,這里還是要試著從理論角度來討論下閉包,看看ECMAScript中的閉包內部究竟是如何工作的。正如在前面的文章中提到的,這些文章都是系列文章,相互之間都是有關聯的。因此,為了更好的理解本文要介紹的內容,建議先去閱讀第14章作用域鏈和第12章變量對象。英文原文:http://dmitrysoshnikov.com/ecmascript/chapter-6-closures/概論在直接討論ECMAScript閉包之前,還是有必要來看一下函數式編程中一些基本定義。眾所周知, 閱讀全文
深入理解JavaScript系列(15):函數(Functions)
2012-01-30 08:37 by 湯姆大叔, 36261 閱讀, 51 推薦, 收藏,
摘要:介紹本章節我們要著重介紹的是一個非常常見的ECMAScript對象——函數(function),我們將詳細講解一下各種類型的函數是如何影響上下文的變量對象以及每個函數的作用域鏈都包含什么,以及回答諸如像下面這樣的問題:下面聲明的函數有什么區別么?(如果有,區別是什么)。原文:http://dmitrysoshnikov.com/ecmascript/chapter-5-functions/var foo = function () { ...};平時的慣用方式:function foo() { ...}或者,下面的函數為什么要用括號括住?(function () { ...})();關于... 閱讀全文
深入理解JavaScript系列(14):作用域鏈(Scope Chain)
2012-01-18 09:35 by 湯姆大叔, 58494 閱讀, 53 推薦, 收藏,
摘要:前言在第12章關于變量對象的描述中,我們已經知道一個執行上下文 的數據(變量、函數聲明和函數的形參)作為屬性存儲在變量對象中。同時我們也知道變量對象在每次進入上下文時創建,并填入初始值,值的更新出現在代碼執行階段。這一章專門討論與執行上下文直接相關的更多細節,這次我們將提及一個議題——作用域鏈。英文原文:http://dmitrysoshnikov.com/ecmascript/chapter-4-scope-chain/中文參考:http://www.denisdeng.com/?p=908本文絕大部分內容來自上述地址,僅做少許修改,感謝作者定義如果要簡要的描述并展示其重點,那么作用域鏈大多 閱讀全文
深入理解JavaScript系列(13):This? Yes,this!
2012-01-17 08:50 by 湯姆大叔, 46679 閱讀, 48 推薦, 收藏,
摘要:介紹在這篇文章里,我們將討論跟執行上下文直接相關的更多細節。討論的主題就是this關鍵字。實踐證明,這個主題很難,在不同執行上下文中this的確定經常會發生問題。許多程序員習慣的認為,在程序語言中,this關鍵字與面向對象程序開發緊密相關,其完全指向由構造器新創建的對象。在ECMAScript規范中也是這樣實現的,但正如我們將看到那樣,在ECMAScript中,this并不限于只用來指向新創建的對象。英文翻譯: Dmitry A. Soshnikov在Stoyan Stefanov的幫助下發布: 2010-03-07http://dmitrysoshnikov.com/ecmascript/c 閱讀全文
深入理解JavaScript系列(12):變量對象(Variable Object)
2012-01-16 09:03 by 湯姆大叔, 54921 閱讀, 74 推薦, 收藏,
摘要:介紹JavaScript編程的時候總避免不了聲明函數和變量,以成功構建我們的系統,但是解釋器是如何并且在什么地方去查找這些函數和變量呢?我們引用這些對象的時候究竟發生了什么?原始發布:Dmitry A. Soshnikov發布時間:2009-06-27俄文地址:http://dmitrysoshnikov.com/ecmascript/ru-chapter-2-variable-object/英文翻譯:Dmitry A. Soshnikov發布時間:2010-03-15英文地址:http://dmitrysoshnikov.com/ecmascript/chapter-2-variable-o 閱讀全文
大叔手記(18):利用Elmah和Google體驗一把入侵的快感
2012-01-13 15:28 by 湯姆大叔, 14900 閱讀, 59 推薦, 收藏,
摘要:介紹關于ELMAH,相信大家都不陌生了,最流行的錯誤日志記錄組件,用過的人都知道其強大的威力,可以記錄非常詳細的錯誤信息供管理員和開發人員進行分析。Elmah配置起來也非常簡單,但是同時也帶來了一個問題:那就是如果配置不好的話,就會被入侵,而且入侵的方法非常非常簡單,本文我講演示一下,如何利用Elmah錯誤信息和Google搜索來入侵一個站點,同時本文也提供了正確的Elmah配置方法。原文整理自:http://www.troyhunt.com/2012/01/aspnet-session-hijacking-with-google.html注1:本人目的是讓大家正確配置ELMAH,不是教大家入 閱讀全文
浙公網安備 33010602011771號