Time of Update: 2018-12-07
首先,不得不說,我無法達到拋開類和對象的概念來看Javascript的境界,對於Javascript是否是物件導向的說法有很多,不過我最認同的還是Javascript是一種“基於prototype的物件導向語言”。物件導向語言三大特點:繼承,多態,封裝,這三點雖然Javascript沒有提供天然的文法實現,但是我們都可以通過prototype等技巧來實現,因此這種說法似乎不過分。在Javascript中,構造對象有三種方式:1. 首先,我們要明確一個概念,Javascript是一種弱類型的語言,
Time of Update: 2018-12-07
1. Javascript的數實值型別《Javascript語言精粹》中有這樣一句話:Javascript只有單一的數字類型。在我看來,這句話說的並不準確,應該說,Javascript在聲明時,只有單一的資料類型。或者說,Javascript的所有數實值型別都被儲存成同一種格式,就是64位的浮點數類型。這樣說比較準確。 <script type="text/javascript"> var i = 1.2; alert(typeof (i));
Time of Update: 2018-12-07
1.1.1 摘要在我們學習Javascript過程中,常常會遇到範圍(Scope)和執行內容(Context)等概念。其中,執行內容與this關鍵字的關係密切。有物件導向編程經驗的各位,對於this關鍵字再熟悉不過了,因此我們很容易地把它和物件導向的編程方式聯絡在一起,它指向利用構造器新建立出來的對象;在ECMAScript中,也支援this,然而,
Time of Update: 2018-12-07
我們知道javascript是通過語句來構造代碼的組織圖的,這種組織圖的基本形式是“代碼分塊”,而代碼分塊帶來的文法效果,是資訊隱藏。一般來說,所謂資訊隱藏指的是變數或者成員的可見度問題,而這個可見度的區間,則依賴文法的稱述,這被稱作範圍,這是對範圍的一種通俗描述,範圍包括文法範圍和變數範圍兩個部分,這兩個部分是一個語言中,模組化層次的全部體現。 javascript中的文法範圍有四種,大部分被嚴格限制在“語句/批語句”範圍內,with就在其中。 其實如果代碼可讀性好的代碼,with是個非常有用
Time of Update: 2018-12-07
眾所周知,javascript是不支援二進位檔案和資料的。傳統的做法,是把二進位檔案轉成字元,然後在瀏覽器裡,通過某些技巧把對應字串換成數字,然後做其它處理(傳統方法會在後面講到)。這種處理方式不標準,需要某些“技巧”,甚至通過“欺騙”瀏覽器才能實現。隨著瀏覽器的進化,出現了新的方案。XMLHttpRequest Level 2增加了對位元據的上傳和下載支援,它可以和File System API, Web Audio API等配合使用。我們的新方案就利用它這個功能。先睹為快,這裡是個demo.
Time of Update: 2018-12-07
設定單選框預設值 function setCheckedValue(radioName, newValue) {if(!radioName) return; var radios = document.getElementsByName(radioName); for(var i=0; i<radios.length; i++) { radios[i].checked = false; if(radios[i].value ==
Time of Update: 2018-12-07
關於js中的繼承,網上有很多文章了,在這裡我寫出自己對js中的繼承的理解。第一個階段:function A(){ this.funB = function(){ alert('A:funB'); };}A.prototype = { funA:function(){ alert('A:funA'); }};function B(){}function extend(sub,parent){ sub.prototype = new parent();
Time of Update: 2018-12-07
JavaScript 中,具名函數可以使用上述的方法直接調用,匿名函數可以通 過引用變數調用, 但沒有引用的匿名函數怎麼調用呢?下面的例子說明這三 種 情況:// 樣本 1. 具名函數直接調用 function foo() {}foo();// 樣本 2. 匿名函數通過引用來調用 fooRef = function() {}fooRef();// 樣本 3. 沒有引用的匿名函數的調用方法(1) (function() {// ... }());// 樣本 4. 沒有引用的匿名函數的調用方法(2)
Time of Update: 2018-12-07
中國有一句老話:工欲善其事,必先利其器最近在學習Silverlight 1.0 的開發,邏輯代碼需要用JS來書寫。用過的朋友都知道,用VS來編寫JS代碼只能提供最基本的智能感應,不能提供SL中的庫函數提示和說明。所以編寫起來會有一些困難。不過一個愛戴墨鏡的老外ברוכים הבאים就自己寫了一個開源工具,來協助我們書寫帶有智能感應的SL代碼。他的文章Silverlight 1.0 full Javascript
Time of Update: 2018-12-07
在Javascript中,function才是Javascript的第一型。當我們寫下一段函數時,其實不過是建立了一個function類型的實體。就像我們可以寫成這樣的形式一樣:function Hello() { alert("Hello"); } Hello(); var Hello = function () { alert("Hello"); }
Time of Update: 2018-12-07
一. 基礎篇 1. Javascript學習筆記1——資料類型 2. Javascript學習筆記2——函數 3. Javascript學習筆記3——範圍 4. Javascript學習筆記4——Eval函數 5. Javascript學習筆記5——類和對象 6. Javascript學習筆記6——prototype的提出 7. Javascript學習筆記7——原型鏈的原理 二.
Time of Update: 2018-12-07
在Javascript中只有五種簡單類型,分別為null,undefined,boolean,String和Number.一種複雜類型:object。代碼類型只有一種形式就是function。undefined:未定義,我們也可稱之為不存在,typeof(undefined)=undefined.null:為空白。undefined是不存在,而null是存在,但卻無。typeof(null)=object,但null又不是object,這就是null的神奇而獨特之處。boolean:true
Time of Update: 2018-12-07
在初學JS的時候就知道這個函數,卻一直沒有瞭解過他的用途,也一直都是睜一隻眼閉一隻眼,這次來深入地瞭解一下這個函數的作用。eval的作用其實很簡單,就是把一段字串傳遞給JS解譯器,由Javascript解譯器將這段字串解釋成Javascript代碼,並且執行他。舉個最簡單的例子: <script type="text/javascript"> eval("alert(1+1)"); </script> 很簡單,把字串解釋成JS代碼並執行,彈出2。
Time of Update: 2018-12-07
每個寫過程式的人都不會對範圍這個概念陌生,那在這篇文章中就來談下Javascript的範圍。在Javascript,全域環境本身就一個對象。在瀏覽器宿主中這個對象是window,而當Javascript用於其它非瀏覽器的宿主,如嵌入式的環境中,可能會是其它的對象。在這裡也糾正一個觀念,有很多人都認為Javascript只在瀏覽器中使用,其實Javascript也能在很多非Web情況下使用,據介紹Javascript在一些基於嵌入式的應用領域表現得也很出色,當然這些我也只是聽過傳說而已。言歸正傳,
Time of Update: 2018-12-07
前段時間學習Javascript,花了一些時間寫了一些關於Javascript物件導向方面的東西,希望能給大家一些協助。 當然,我的很多理解非常膚淺,所以大家有什麼不同的意見,或者我有什麼錯誤,還希望大家多多指教。 (還在繼續寫作中) 索引: Javascript玩轉繼承 《Javascript玩轉繼承(一)》 《Javascript玩轉繼承(二)》 《Javascript玩轉繼承(三)》 Javascript玩轉prototype
Time of Update: 2018-12-07
首先我們繼續上文的代碼,我們來把這段代碼延伸一下: <script type="text/javascript"> var Person = function (name, age) { this.name = name; this.age = age; this.Introduce = function () { alert("My name is " + this.
Time of Update: 2018-12-07
上文一直在羅嗦GOF的原型模式,在本文中講開始正式討論Javascript的Prototype。對於Javascript的初學者來說,Prototype是個蠻高深的話題,其實並不盡然。我說不盡然,意思是說理解Prototype的一般用法很簡單。但是真正能做到融會貫通理解Prototype確實是件很難的事情。今天我就從Prototype的基本開始講。上文中我講了原型模式。其實在Javascript中原型也是這個意思。Javascript中對象的原型屬性的解釋是:返回物件類型原型的引用。這是一個暈人
Time of Update: 2018-12-07
一. 基礎篇 1. Javascript學習筆記1——資料類型 2. Javascript學習筆記2——函數 3. Javascript學習筆記3——範圍 4. Javascript學習筆記4——Eval函數 5. Javascript學習筆記5——類和對象 6. Javascript學習筆記6——prototype的提出 7. Javascript學習筆記7——原型鏈的原理 二. 實戰篇 8. Javascript學習筆記8——用JSON做原型 9.
Time of Update: 2018-12-07
說到prototype,就不得不先說下new的過程。我們先看看這樣一段代碼: <script type="text/javascript"> var Person = function () { };var p = new Person();</script>很簡單的一段代碼,我們來看看這個new究竟做了什嗎?我們可以把new的過程拆分成以下三步:<1> var p={}; 也就是說,初始化一個對象p。<2>
Time of Update: 2018-12-07
在Javascript學習筆記5——類和對象中,我簡單地提到了利用JSON去構造一個對象。代碼如下: <script type="text/javascript"> var People = { name: "kym", age: 21, SayHello: function () { alert("Hello,My name is " + this.name + ".