Time of Update: 2017-01-19
疑問 第一篇中有位博友提出了以下的問題,我也不太明白,如果有明白的,能否告知一、二。 複製代碼 代碼如下: var str = "test"; for(var a in str){ console.log(a + ":" + str[ a ]); } 輸出結果 這是一個字串對象,在使用for的時候,會出現上面的情況。自調用匿名函數(function(){})(window) 複製代碼 代碼如下: (function(window, undefined){ // jquery code })
Time of Update: 2017-01-19
巧妙1:函數 在javascript代碼中函數是個不可多得的人才。 ♥ 它可以歸置程式碼片段,封裝相對獨立的功能。 ♥ 它也可以實作類別,注入OOP思想。 jQuery就是一個函數,你也可以把它當成類(呵呵,本身就是類)。 複製代碼 代碼如下: (function(){ var jQuery = function() { // 函數體 } window.jQuery = window.$ = jQuery; })();
Time of Update: 2017-01-19
Jquery這麼普及,必有它過人之處,通過開原始碼進行學習,是個不錯的學習方法啊! 以下是我類比的方法,我盡量簡化方法。 定義對象C(類似於jquery的$方法)——這個也是jquery設計非常巧妙的地方 複製代碼 代碼如下: (function(){ var _cQuery = window.cQuery, cQuery = function(){ return new cQuery.fn.init(); }; cQuery.fn = cQuery.prototype = { init :
Time of Update: 2017-01-19
具體解決方案如下: 一、IE和FF下document.body對象的clientHeight,offsetHeight,scrollHeight屬性的差別。 clientHeight 在IE和FF下,該屬性沒什麼差別,都是指瀏覽器的可視地區,即除去瀏覽器的那些工具列狀態列剩下的頁面展示空間的高度。 offsetHeight 在IE下,offsetHeight也是瀏覽器可視地區的高(包括邊線) 在FF下,offsetHeight是頁面具體內容的高度 scrollHeight
Time of Update: 2017-01-19
物件導向與基於對象幾乎每個開發人員都有物件導向語言(比如C++、C#、Java)的開發經驗。 在傳統物件導向的語言中,有兩個非常重要的概念 - 類和執行個體。 類定義了一類事物公用的行為和方法;而執行個體則是類的一個具體實現。 我們還知道,物件導向編程有三個重要的概念 - 封裝、繼承和多態。 但是在JavaScript的世界中,所有的這一切特性似乎都不存在。 因為JavaScript本身不是物件導向的語言,而是基於對象的語言。
Time of Update: 2017-01-19
escape() 方法: 採用ISO Latin字元集對指定的字串進行編碼。所有的空格符、標點符號、特殊字元以及其他非ASCII字元都將被轉化成%xx格式的字元編碼(xx等於該字元在字元集表裡面的編碼的16進位數字)。比如,空格符對應的編碼是%20。 不會被此方法編碼的字元: @ * / + encodeURI() 方法: 把URI字串採用UTF-8編碼格式轉化成escape格式的字串。 不會被此方法編碼的字元:! @ # $& * ( ) = : / ; ? + '
Time of Update: 2017-01-19
例如,當你在輸入框中輸入張三或是長沙,或是湖南,都會出現張三讓你選擇,輸入18,將同時出現張三李四 測試資料來源如下: 複製代碼 代碼如下: <?xml version="1.0" encoding="utf-8" ?> <students> <student> <id>s1</id> <name>張三</name> <province>湖南</province> <city>
Time of Update: 2017-01-19
1234 5678 9101112 [Ctrl+A 全選 注:如需引入外部Js需重新整理才能執行]
Time of Update: 2017-01-19
沒有辦法,實踐證明最好的解決辦法是自己寫一個OCX控制項,這樣就只要註冊一下OCX控制項就可以了,同時OCX控制項的可擴充性非常大,也就是給vc\delphi這些程式的功能引入到web中,其功能可想而知! 這裡不說明OCX開發的過程了,給自己寫的OCX控制項共用一下,希望能給一些朋友提供協助。 這個OCX控制項中提供了一個getFiles()方法,只要擷取控制項對象,然後調用getFiles()方法就可以擷取對應路徑下的所有檔案,如下圖:
Time of Update: 2017-01-19
JavaScript解析讀取XML檔案,主要就是載入並解析XML檔案,然後就可以測試解析的XML檔案的內容,列印輸出來。 線上示範:http://demo.jb51.net/js/2012/readxml/註:測試的時候需要在網站中測試,iis或apache中,注意不要本地雙擊運行測試index.htm複製代碼 代碼如下: <html> <head> <title>雲棲社區</title> <script
Time of Update: 2017-01-19
1、 Javascript中的對象
Time of Update: 2017-01-19
複製代碼 代碼如下:var $d = document; function $i(s){return $d.getElementById(s);} var _jsc={} _jsc.client=(function(){ var t={}; var b=navigator.userAgent.toLowerCase(); t.isOpera=(b.indexOf('opera')>-1) t.isIE=(b.indexOf('msie')>-1)
Time of Update: 2017-01-19
介紹 低層次的語言,如C,具有低層級的記憶體管理命令,如:malloc()和free(),需要開發人員手工釋放記憶體。然而像javascript這樣的進階語言情況則不同,對象(objects, strings 等)建立的時候分配記憶體,當他們不在使用的時候記憶體會被自動回收,這個自動回收的過程被稱為記憶體回收。因為記憶體回收的存在,讓javascript等進階語言開發人員產生了一個錯誤的認識,以為可以不用關心記憶體管理。記憶體生命週期 不管什麼樣的程式設計語言,記憶體的生命週期基本上是一致的。
Time of Update: 2017-01-19
項目中遇到一個需求,要把中國式的顯示阿拉伯數位方式改為歐式的,即每三位顯示,中間用逗號隔開,比如12345678改成12,345,678的顯示方式,下面就是javascript代碼的具體實現:var iValue = 20002365879; //要轉換的數字var sValue = iValue+'';var aValue = new Array();var iNum = sValue.length%3;var aResult; //轉換結果var index =
Time of Update: 2017-01-19
我們今天就來看一下繼承中的類繼承以及類繼承和原型繼承的混用,所謂類繼承,就是使用call或者apply方法來進行冒充繼承:function Desk(size,height){this.size=size;this.height=height;}function MJDesk(size,height){Desk.call(this,size,height);//這種就叫類繼承.}var mj = new
Time of Update: 2017-01-19
前面的話 eval和with經常被嫌棄,好像它們的存在就是錯誤。在CSS中,表格被嫌棄,在網頁中只是用表格來展示資料,而不是做布局,都可能被斥為不規範,矯枉過正。那關於eval和with到底是什麼情況呢?本文將詳細介紹eval()函數和with語句eval定義 eval()是一個全域函數,javascript通過eval()來解釋運行由javascript原始碼組成的字串var result = eval('3+2');console.log(result,typeof result);//
Time of Update: 2017-01-19
Raphael 是一個用於在網頁中繪製向量圖形的 Javascript 庫。它使用 SVG W3C 推薦標準和 VML 作為建立圖形的基礎,你可以通過 JavaScript 操作 DOM 來輕鬆建立出各種複雜的柱狀圖、餅圖、曲線圖等各種圖表,還可以繪製任意形狀的圖形,可以進行圖表或映像的裁剪和旋轉等複雜操作。 Raphaël 是跨瀏覽器的向量圖形庫,目前支援的瀏覽器包括: Firefox 3.0+,Safari 3.0+,Chrome 5.0+,Opera 9.5+ 以及
Time of Update: 2017-01-19
在對數值進行格式化的時候,一個常見的問題是按照千分位格式化,網上對這個問題已經有很多種解決方案了,還可以利用Array.prototype.reduce方法來實現千分位格式化。function formatNumber(num) { if (isNaN(num)) { throw new TypeError("num is not a number"); } var groups = (/([\-\+]?)(\d*)(\.\d+)?/g).exec("" +
Time of Update: 2017-01-19
理解深拷貝和淺拷貝之前需要弄懂一些基礎概念,記憶體中儲存的變數類型分為實值型別和參考型別。1、實值型別賦值的儲存特點, 將變數內的資料全部拷貝一份, 儲存給新的變數。例如:var num = 123 ;var num1=num;表示變數中儲存的數字是 123。然後將資料拷貝一份,就是將 123 拷貝一份. 那麼記憶體中有 2 個 數組;將拷貝資料賦值給 num2,其特點是在記憶體中有兩個資料副本.這可以理解為淺拷貝。2、參考型別的賦值。var o={name:'張三‘};var
Time of Update: 2017-01-19
1.字串的不可變性 字串定義了後,會一直佔據記憶體空間,企鵝該處記憶體空間(棧)不可被重新賦值。2.短路運算 ||、&& 二元運算子,返回參與運算的運算元的原值(原資料類型和原資料), 運算結束後,返回導致運算結束的那個運算元。3.三元運算子 code1?code2:code3; 與if-else 不同: 返回code2或code3的值----code2,code3