Time of Update: 2018-12-08
而在javascript中,變數的範圍是按函數來劃分的——變數在某個函數範圍內有效。比如: 複製代碼 代碼如下:var f = false; if(true) { var f = true; } //此時f位於if內,也就是塊內,等價於還是全域範圍內 alert(f) //所以,結果為true 再如下例: 複製代碼 代碼如下:var f = false; function test() { var f = true;
Time of Update: 2018-12-08
全域變數是Window對象屬性的一部分,例子: 複製代碼 代碼如下:var test = 'test'; alert(window.test); 瀏覽器渲染和操作HTML的大致順序: HTML解析完畢 外部指令碼和樣式表載入完畢 指令碼在文檔內解析並執行 HTML DOM完全構造起來 圖片和外部內容載入 網頁完成載入 所有的主流瀏覽器都實現了innerHTML 屬性,但是因為沒有統一標準,所以或多或少會有一些怪異的bug。 基於Mozilla的瀏覽器在innerHTML聲明中並不回會返回<
Time of Update: 2018-12-08
在啟用了firebug面板後,會增加一個window.console對象及window.console.firebug變數用於儲存當前firebug的目前的版本,當關閉firebug面板後則變回正常,於是我們可以通過判斷其是否存在來檢測是否開啟了firebug。 複製代碼 代碼如下:Boolean(window.console && window.console.firebug)
Time of Update: 2018-12-08
實現1 複製代碼 代碼如下:String.prototype.trim = function () { return this .replace(/^\s\s*/, '' ).replace(/\s\s*$/, '' ); } 看起來不怎麼樣,動用了兩次正則替換,實際速度非常驚人,主要得益於瀏覽器的內部最佳化。一個著名的例子字串拼接,直接相加比用Array做成的StringBuffer還快。base2類庫使用這種實現。 實現2 複製代碼 代碼如下:String.prototype.trim =
Time of Update: 2018-12-08
核心代碼:複製代碼 代碼如下:<script language="javascript" type="text/javascript"> function adjustObjHeight(obj, defaultHeight) { if(obj.scrollHeight > defaultHeight) { obj.style.height = obj.scrollHeight + 'px'; } else { obj.style.height = defaultHeight
Time of Update: 2018-12-08
http://perfectionkills.com/javascript-quiz/ 下面是我關於這些題目的,一些關於自己的理解. 如果有什麼不同的意見或者見解,歡迎拍磚. 複製代碼 代碼如下:(function(){ return typeof arguments; })(); 這個題目比較簡單, 只要大家不覺得 arguments 是 array ,就可以了. 返回是 object. 複製代碼 代碼如下:var f = function g(){ return 23; };
Time of Update: 2018-12-08
複製代碼 代碼如下:function xntest(){ var d1=new Date(); var str=""; for(var i=0;i<10000;i++){ str+="stext"; } var d2=new Date(); document.write(" 字串拼接方式耗時:"+(d2.getTime()- d1.getTime())+"毫秒;"); d1=new Date(); var sb=new Array(); for(var i=0;i<10000;i++
Time of Update: 2018-12-08
先看看效果: 複製代碼 代碼如下:<script type="text/javascript" src="http://users4.Jabry.com/pengju/src/pj-2.1.1.mini.js"></script> <script type="text/javascript" src="http://users4.Jabry.com/pengju/src/Calendar.js"></script> <input name="
Time of Update: 2018-12-08
所以, 我們得利用IE的currentStyle和W3C的getPropertyValue擷取. elem.style.attr擷取樣式的方法就不說了. 先來看currentStyle方法, 此對象ie專屬, 代表了在全域樣式表、內嵌樣式和 HTML 標籤屬性中指定的對象格式和樣式. IE下通過它, 就可以擷取元素的Css屬性值. 而針對其他標準瀏覽器, W3C也提供了一個方法getPropertyValue, 此方法, 稍有點複雜,
Time of Update: 2018-12-08
而str.replace(/\-/g,"!")則可以全部替換掉匹配的字元(g為全域標誌)。 replace() The replace() method returns the string that results when you replace text matching its first argument (a regular expression) with the text of the second argument (a string). If the g (global)
Time of Update: 2018-12-08
第一種方法:,代碼比較專業 推薦複製代碼 代碼如下:<script> function GetLocationParam(param){ var request = { QueryString : function(val) { var uri = window.location.search; var re = new RegExp("" +val+ "=([^&?]*)", "ig"); return
Time of Update: 2018-12-08
一、什麼是閉包? “官方”的解釋是:所謂“閉包”,指的是一個擁有許多變數和綁定了這些變數的環境的運算式(通常是一個函數),因而這些變數也是該運算式的一部分。 相信很少有人能直接看懂這句話,因為他描述的太學術。我想用如何在Javascript中建立一個閉包來告訴你什麼是閉包,因為跳過閉包的建立過程直接理解閉包的定義是非常困難的。看下面這段代碼: 複製代碼 代碼如下:function a(){ var i=0; function b(){ alert(++i); } return b; }
Time of Update: 2018-12-08
下面是頁面的dom結構 複製代碼 代碼如下:<ul id="test"> <li>One</li> <li>Two</li> <li>Three</li> <li>Four</li> </ul> 下面是javascript代碼 複製代碼 代碼如下://根據ID擷取對象 function id(v) { return document.getElementById(v); } /
Time of Update: 2018-12-08
官方解釋 “閉包”是一個擁有許多變數和綁定了這些變數的環境運算式(通常是一個函數),因而這些變數也是環境運算式的一部分。 通俗解釋 Javascript中所有的函數都是一個閉包。不過一般來說,嵌套的function產生的閉包更為強大,也是大部分時候我們所說的“閉包”。看如下代碼: 複製代碼 代碼如下:<script type="text/javascript"> <!-- //外層函數a function a(){ //臨時變數i var i = 0; //內層函數b
Time of Update: 2018-12-08
在我這裡,我選擇將xml直接轉換為json,以便後續javascript應用的處理。我使用.net平台構建簡單的webservice。 Request.asmx 複製代碼 代碼如下:using System; using System.IO; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Web; using
Time of Update: 2018-12-08
自執行函數:自動執行的函數。它在被解釋時就已經在運行了。一般函數都是在被調用時才會執行的。 自執行函數的一般格式:(function() { 函數體 })(); 而且,自執行函數中一般都會有一個function() {}形式的匿名函數。 下面的代碼在window對象中建立一個命名空間 mySpace,並把自執行函數中的方法封裝在mySpace命名空間之下,以便於我們調用這個自執行函數中的一些功能。 複製代碼 代碼如下:(function() { //根據id擷取對象 function $(id)
Time of Update: 2018-12-08
當然我們可以在後台中擷取參數的值,然後在前台js代碼中擷取變數的值,具體做法請參考我的這篇文章:JavaScript擷取後台C#變數以及調用後台方法。 其實我們也可以直接在js中擷取請求的參數的值,通過使用window.location.search可以擷取到當前URL的?號開始的字串,如前面的連結擷取到的search為?id=001。再對擷取的字串進行處理,就可以擷取到參數的值了。 複製代碼 代碼如下:function getUrlParam(name) { var reg = new
Time of Update: 2018-12-08
相對於其他語言來說,javascript指令碼語言太小巧玲瓏了,活潑靈動。個人非常喜歡寫javascript代碼。雖說網路上出名的javascript庫充斥網路,jQuery、Prototype、Base、ExtJs……,功能也非常強大,使用起來也方便。但是有一個不太令人滿意的地方,就是庫本身太大了。有時只是用其中幾個功能就必須得把整個庫引進來,就jQuery來說,壓縮了也還有70多KB,有時比一個網頁檔案還大。但我們有需要一個庫來協助開發,所以自己就寫了一個輕量級的javascript庫,只支
Time of Update: 2018-12-08
一、迷思!由一段代碼引發的疑惑 請看如下代碼: 複製代碼 代碼如下:for(var i=0;i<3;i++) { console.log(j+","+k); for(var j=0;j<3;j++) { var k = j+1; } } console.log(i); 輸出結果: undefined,undefined 3,3 3,3 3 如果你是搞c、java等語言的,可能你會不解,為何j、k這種局部變數可以被範圍外的代碼訪問呢?
Time of Update: 2018-12-08
一.關於Javascript變數聲明 在Javascript中,聲明一個變數 var a=1; 也可以直接 a=1; 這兩種表達是有區別的, 一個是當前範圍的局部變數,另一個則是當前範圍的全域變數; Javascript語言的特殊之處,就在於函數內部可以直接讀取全域變數。 複製代碼 代碼如下:var n=999; function f1(){ alert(n); } f1(); // 999 另一方面,在函數外部自然無法讀取函數內的局部變數。 複製代碼 代碼如下:function f1(){