Time of Update: 2018-12-08
還好網上什麼都有,上網找了一個瀏覽器安全色性最佳的函數,經測試相容IE、FireFox、Chrome,並且不會有捲軸誤差問題,存檔下,以備後用 複製代碼 代碼如下:function mousePos(e){ var x,y; var e = e||window.event; return { x:e.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,
Time of Update: 2018-12-08
如今的JavaScript再也不是以前被當做玩具的在網頁上啟動並執行花哨的指令碼了。JavaScript已經逐漸標準化,作為一門真正的程式設計語言廣泛地應用在Web開發上。因此,越來越多的人開始重新認識這門指令碼語言,並在不斷地探索關於JavaScript核心思想和實現原理,過程中遇到了一些非常混淆的問題。本文著重解釋一個比較常見但是非常容易使開發人員或者是初學JavaScript的人非常混淆的問題,那就是兩個核心建構函式Object和Function,他們之間到底有什麼關係?為何instanc
Time of Update: 2018-12-08
首先我們繼續上文的代碼,我們來把這段代碼延伸一下: 複製代碼 代碼如下:<script type="text/javascript"> var Person = function (name, age) { this.name = name; this.age = age; this.Introduce = function () { alert("My name is " + this.name + ".I'm " + this.age); }; }; var person1 =
Time of Update: 2018-12-08
物件導向語言三大特點:繼承,多態,封裝,這三點雖然Javascript沒有提供天然的文法實現,但是我們都可以通過prototype等技巧來實現,因此這種說法似乎不過分。 在Javascript中,構造對象有三種方式: 1. 首先,我們要明確一個概念,Javascript是一種弱類型的語言,一方面體現在Javascript的變數,傳回型別都是沒有強型別約束的,另一方面,Javascript可以為對象任意添加屬性和方法。根據這個,我們可以寫出這樣的代碼: 複製代碼 代碼如下:<script
Time of Update: 2018-12-08
offsetTop 可以獲得 HTML 元素距離上方或外層元素的位置,style.top 也是可以的,二者的區別是: 一、offsetTop 返回的是數字,而 style.top 返回的是字串,除了數字外還帶有單位:px。 二、offsetTop 唯讀,而 style.top 可讀寫。 三、如果沒有給 HTML 元素指定過 top 樣式,則 style.top 返回的是Null 字元串。 offsetLeft 與 style.left、offsetWidth 與
Time of Update: 2018-12-08
eval的作用其實很簡單,就是把一段字串傳遞給JS解譯器,由Javascript解譯器將這段字串解釋成Javascript代碼,並且執行他。 舉個最簡單的例子: 複製代碼 代碼如下:<script type="text/javascript"> eval("alert(1+1)"); </script> 很簡單,把字串解釋成JS代碼並執行,彈出2。
Time of Update: 2018-12-08
一、什麼是事件冒泡 在一個對象上觸發某類事件(比如單擊onclick事件),如果此對象定義了此事件的處理常式,那麼此事件就會調用這個處理常式,如果沒有定義此事件處理常式或者事件返回true,那麼這個事件會向這個對象的父級對象傳播,從裡到外,直至它被處理(父級對象所有同類事件都將被啟用),或者它到達了對象層次的最頂層,即document對象(有些瀏覽器是window)。 打個比方說:你在地方法院要上訴一件案子,如果地方沒有處理此類案例的法院,地方相關部門會幫你繼續往上級法院上訴,比如從市級到省級,
Time of Update: 2018-12-08
在Javascript,全域環境本身就一個對象。在瀏覽器宿主中這個對象是window,而當Javascript用於其它非瀏覽器的宿主,如嵌入式的環境中,可能會是其它的對象。 在這裡也糾正一個觀念,有很多人都認為Javascript只在瀏覽器中使用,其實Javascript也能在很多非Web情況下使用,據介紹Javascript在一些基於嵌入式的應用領域表現得也很出色,當然這些我也只是聽過傳說而已。 言歸正傳,當我們寫下:var i=1時,其實就是聲明了一個window範圍的一個變數。
Time of Update: 2018-12-08
然而,在今天一些大型的WEB互動項目中,比如大型的WebGame項目,JavaScript事件冒泡影響是值得重視的。本文通過一個簡單的例子來講解JavaScript事件冒泡及使用注意事項。 如果你對JavaScript事件冒泡還沒有什麼印象,不妨先看看我之前寫的一篇部落格《JavaScript事件冒泡簡介及應用》。本文講究實用,不在對JavaScript事件冒泡基礎知識進行過多的闡述。
Time of Update: 2018-12-08
就像我們可以寫成這樣的形式一樣: 複製代碼 代碼如下:function Hello() { alert("Hello"); } Hello(); var Hello = function () { alert("Hello"); } Hello(); 其實都是一樣的。 但是當我們對其中的函數進行修改時,會發現很奇怪的問題。 複製代碼 代碼如下:<script type="text/javascript"> function Hello() { alert("Hello"); }
Time of Update: 2018-12-08
例如,在Chrome下調試如下程式,很清楚的展示了這點:
Time of Update: 2018-12-08
雖然這個集合的 key 只能是 String 類型,不像 Java 裡面的各種集合類能夠使用各種對象作為 Key ,但對於實現一般的用戶端 JS 功能來說,已經是足夠用了。同樣,因為所有的 JS 內部對象都繼承自 Object 對象,所以實際上 JS 的 Array 對象也可以使用字串來做為數組的下標,就像 PHP 中的陣列變數一樣。來自鳥食軒。
Time of Update: 2018-12-08
代碼類型只有一種形式就是function。 undefined:未定義,我們也可稱之為不存在,typeof(undefined)=undefined. null:為空白。undefined是不存在,而null是存在,但卻無。typeof(null)=object,但null又不是object,這就是null的神奇而獨特之處。 boolean:true or false。
Time of Update: 2018-12-08
hasOwnProperty 方法 返回一個布爾值,指出一個對象是否具有指定名稱的屬性。 object.hasOwnProperty(proName) 相容WinIE5.5+, MacIE-, NN6+, Moz+, Safari- 參數 object 必選項。一個對象的執行個體。 proName 必選項。一個屬性名稱的字串值。 說明 如果 object 具有指定名稱的屬性,那麼 hasOwnProperty 方法返回 true;反之則返回
Time of Update: 2018-12-08
好,那就讓我們一步步打造,首先讓我們來看下繼承原本的寫法: 複製代碼 代碼如下:<script> var Person = function(name, age) { this.name = name; this.age = age; } Person.prototype.SayHello = function () { alert(this.name + "," + this.age); }; var Programmer = function (name, age,
Time of Update: 2018-12-08
代碼如下: 複製代碼 代碼如下:<script type="text/javascript"> var People = { name: "kym", age: 21, SayHello: function () { alert("Hello,My name is " + this.name + ".I am " + this.age); } } alert(People.name); People.SayHello(); </script>
Time of Update: 2018-12-08
typeof用以擷取一個變數的類型,typeof一般只能返回如下幾個結果:number,boolean,string,function,object,undefined。我們可以使用typeof來擷取一個變數是否存在,如 if(typeof a != "undefined"){},而不要去使用if(a)因為如果a不存在(未聲明)則會出錯,對於Array,Null等特殊對象使用typeof一律返回object,這正是typeof的局限性。
Time of Update: 2018-12-08
我們先看看這樣一段代碼: 複製代碼 代碼如下:<script type="text/javascript"> var Person = function () { }; var p = new Person(); </script> 很簡單的一段代碼,我們來看看這個new究竟做了什嗎?我們可以把new的過程拆分成以下三步: <1> var p={}; 也就是說,初始化一個對象p。 <2> p.__proto__=Person.prototype;
Time of Update: 2018-12-08
先看一下官方的解釋: call 方法 請參閱 應用於:Function 對象 要求 版本 5.5 調用一個對象的一個方法,以另一個對象替換當前對象。 call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 參數 thisObj 可選項。將被用作當前對象的對象。 arg1, arg2, , argN 可選項。將被傳遞方法參數序列。 說明 call 方法可以用來代替另一個對象調用一個方法。call 方法可將一個函數的物件內容從初始的上下文改變為由 thisObj
Time of Update: 2018-12-08
有時候可能會有這麼一個需求,我在後台使用: 複製代碼 代碼如下:HttpUtility.UrlEncode(str, System.Text.Encoding.UTF8); 將Url進行編碼,前台JS需要使用這段內容,這時候就需要解碼了: 代碼 複製代碼 代碼如下:/** * Url編碼 **/ ShengUtils.encode = function(unzipStr){ var zipstr=""; var strSpecial="!\"#$%&'()*+,/:;<=>?