Time of Update: 2017-01-19
你知道下面的JavaScript代碼執行後會alert出什麼值嗎? 複製代碼 代碼如下: var foo = 1; function bar() { if (!foo) { var foo = 10; } alert(foo); } bar(); 如果答案是"10"令你感到驚訝的話,那麼下面這個會讓你更加困惑: [/code] var a = 1; function b() { a = 10; return; function a() {} } b(); alert(a); [/code]
Time of Update: 2017-01-19
JavaScript區分大小寫:在JavaScript中變數、函數都是區分大小寫,例如: 複製代碼 代碼如下: function myfunction(){}和 function myFunction(){}不同 JavaScript中核心對象Array、Object等也是區分大小寫。 單引號和雙引號:這個問題在學SQLServer拼接字串"select * from page where
Time of Update: 2017-01-19
範圍 全域範圍 局部範圍 範圍鏈 執行內容 使用中的物件 閉包 閉包最佳化 JavaScript中出現了一個以前沒學過的概念——閉包。何為閉包?從表面理解即封閉的包,與範圍有關。所以,說閉包以前先說說範圍。 範圍(scope) 通常來說一段程式碼中使用的變數和函數並不總是可用的,限定其可用性的範圍即範圍,範圍的使用提高了程式邏輯的局部性,增強程式的可靠性,減少名字衝突。 全域範圍(Global Scope) 在代碼中任何地方都能訪問到的對象擁有全域範圍,以下幾種情形擁有全域範圍:
Time of Update: 2017-01-19
代碼如下: 複製代碼 代碼如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns=" http://www.w3.org/1999/xhtml"> <head>
Time of Update: 2017-01-19
事件就是使用者或瀏覽器自身執行的某種動作。比如說click,mouseover,都是事件的名字。而相應某個事件的函數就叫事件處理常式(或事件接聽程式)。為事件指定處理常式的方式有好幾種。 一:HTML事件處理常式。 如: 複製代碼 代碼如下: <script type="text/javascript"> function show(){ alert('hello world!'); } </script> <input type="button"
Time of Update: 2017-01-19
a)滑鼠事件 滑鼠事件也許是web頁面當中最常用到的事件,因為滑鼠是最常用的導航裝置,在DOM3級事件上定義了9個滑鼠事件,分別為: click:當使用者點擊滑鼠主鍵通常是指滑鼠左鍵或按斷行符號鍵時觸發。 dbclick:當使用者雙擊滑鼠主鍵時發生觸發,這個事件並沒有在DOM2級事件中定義但是卻被普遍支援了,後來在DOM3級中得到了標準化。 mousedown:當使用者按下滑鼠任意一個鍵都會觸發,這個事件是不能夠通過鍵盤觸發的。
Time of Update: 2017-01-19
這就意味著會有適當的事件冒泡,並且瀏覽器會執行分配的事件處理常式。這種能力在測試web應用程式的時候,是非常有用的,在DOM 3級規範中提供了方法來類比特定的事件,IE9 chrome FF Opera 和 Safari都支援這樣的方式,在IE8及以前的辦法的IE瀏覽器有他自己的方式來類比事件 a)Dom 事件類比 可以通過document上的createEvent()方法,在任何時候建立事件對象,此方法只接受一個參數,既要建立事件對象的事件字串,在DOM2 級規範上所有的字串都是複數形式,
Time of Update: 2017-01-19
CSS 樣式: 複製代碼 代碼如下: DIV.neat-dialog-cont { Z-INDEX: 98; BACKGROUND: none transparent scroll repeat 0% 0%; LEFT: 0px; WIDTH: 100%; POSITION: absolute; TOP: 0px; HEIGHT: 100% } DIV.neat-dialog-bg { Z-INDEX: -1; FILTER: alpha(opacity=70); LEFT: 0px;
Time of Update: 2017-01-19
複製代碼 代碼如下: function AutomateExcel() { try { //Start Excel and get Application object. var oXL; try { oXL = new ActiveXObject("Excel.Application"); } catch(e) { alert("無法啟動Excel!\n\n如果您確信您的電腦中已經安裝了Excel," + "那麼請調整IE的安全層級。\n\n具體操作:\n\n" + "工具 →
Time of Update: 2017-01-19
從前的方式——我估計也是大多數人使用的方式 比如以下的代碼——摘自新浪首頁的一段js代碼,這種方式也是大多數人使用的方式。 上面的代碼,你看完有什麼反應?你也許會把+=這種形式改成數組的push形式,有人說push比這種字元連結要快,但是也快不了多少。 如果這種嵌入的html代碼很多,你也要這樣處理嗎?如果修改(添加或者刪除)某個html,那麼你就要不斷的翻代碼,找對應的標籤,然後在找結束標籤,你不覺得麻煩嗎?也許有人會這樣寫(這個是我早期寫的,也是我最慣於使用的方式)。
Time of Update: 2017-01-19
如下所示: 複製代碼 代碼如下: var person = new Object(); person.name = "Nicholas"; person.age = "29" person.job = "Software Engineer"; person.sayName = function () { alert(this.name); };
Time of Update: 2017-01-19
其中: 1.JavaScript的sort()中如果沒有指定比較函數,則預設會按照字元的編碼順序進行升序排序。也就是說如果我們想要對數值進行排序得到的不一定是我們想要的結果。 2.Javascript的reverse()將數組中的元素逆序。 先看看上面的第一點,如果有一個數組arr=[1,6,3,7,9],使用arr.sort()後,數組的順序為1,3,6,7,9,得到了我們想要的結果。
Time of Update: 2017-01-19
執行個體JavaScript代碼 下面的這段代碼中,我們通過select元素的name屬性來設定具體要訪問style的哪個屬性(本例中為背景色),這樣,這個函數就可以用來設定不同的CSS屬性了。 複製代碼 代碼如下: <script type="text/javascript"> var d = document.getElementById("d"); function setProperty(){ var set =
Time of Update: 2017-01-19
代碼內容及下載地址 accounting.js代碼如下: 複製代碼 代碼如下: /*! * accounting.js v0.3.2 * Copyright 2011, Joss Crowcroft * * Freely distributable under the MIT license. * Portions of accounting.js are inspired or borrowed from underscore.js * * Full details and
Time of Update: 2017-01-19
複製代碼 代碼如下: var EventUtil={ //跨瀏覽器處理常式---建立方法 addHandler:function(element,type,handler){ if(element.addEventListener){ element.addEventListneter(type,handler,false); }else if(element.attachEvent){ element.attachEvent("on"+type,handler); }else{
Time of Update: 2017-01-19
之前兩篇都介紹了,通過動態載入JS檔案或者說JS模組,是怎麼一步一步實現。 首先是通過同步策略來實現模組載入與回呼函數之間進行分離,接著是通過非同步策略來實現模組載入與回呼函數之間進行分離。 這一篇,主要是為了說說怎麼最佳化非同步策略,並且實現了隨意載入(非任意順序載入模組),頁面Ready之後負載檔案。先接一下上一篇遺留下來的問題 1、頁面Ready之後進行載入 2、隨意添加模組 進行載入
Time of Update: 2017-01-19
在上一篇javascript動態載入中,提到了使用同步載入策略這一個方式來實現如 複製代碼 代碼如下: Using("jquery"); Using("User"); $("#ID").click(function(){ var user = new User(); user.name = "xx"; user.show(); }); 由於JS是單線程的,所以同步策略帶來的壞處不少,比如阻止之後的代碼運行、造成瀏覽器假死等問題。 使用非同步策略又難以實現先導包
Time of Update: 2017-01-19
經過自己一晚上嘗試,貌似找到了一個方法。 現在腦袋還糊塗,先記下來,以後再分析。 複製代碼 代碼如下: // 找到子項目在父元素中的相對位置 function getElementTop(element){ var el = (typeof element == "string") ? document.getElementById(element) : element; if (el.parentNode === null || el.style.display == 'none') {
Time of Update: 2017-01-19
第一遍囫圇吞棗,不求甚解,感覺恍然大悟,結果晚上睡覺一想發現很多問題,什麼都不明白,再看第二遍,發現原來是這樣。過了幾天一用,發現手寫起來原來還是在憑記憶,於是下一遍,下一遍...
Time of Update: 2017-01-19
因為我在寫這文章的時候,百度裡找資料,找到了園友的一篇文章,寫的很好,可是我寫了又不想放棄,所以就在裡面拿了很多東西過來!~~ [翻譯]JavaScript Scoping and Hoisting 希望得到大家諒解。 一。案發現場 我們先看一段很簡單的代碼: 複製代碼 代碼如下: var v='Hello World'; alert(v); 這個沒有疑問吧,彈出“Hello World”。OK,我們繼續。 我們在看一段Code: 複製代碼 代碼如下: var v='Hello World';