Time of Update: 2017-01-19
一、javascript的資料 javascript的資料分為兩種:簡單資料和複雜資料。簡單資料包含number,string,boolean,undefined和null這五種;複雜資料只有一種即object。【此處友情鳴謝李戰老師,<<悟透JavaScript>>寫得太傳神,印象太深刻了】 二、javascript的資料類型檢測 1、萬能的typeof 我們先測試一下通過typeof來擷取單一資料型別。什麼也別說了,上代碼是王道: 複製代碼 代碼如下: //
Time of Update: 2017-01-19
比如: 複製代碼 代碼如下: var anchors = document.getElementsByTagName("a"); for (i = 0; i < anchors.length; i++) { var ele=anchors[i];//取某一個元素 //some code here } 上面的代碼錶示擷取文檔中的所有連結元素,然後遍曆做一些事情。
Time of Update: 2017-01-19
問題: 使得在訪問頁面的時候能夠沿用上次的設定,或者在不同的頁面間共用資料。比如使用者在訪問網站的時候設定了頁面字型的大小,那麼會希望下次訪問的時候仍然能使用同樣的設定進行瀏覽,而不用重複設定。 解決方案: 在使用者瀏覽頁面並進行設定時,將這些設定儲存在cookie中,下次訪問的時候讀取cookie中的設定。 參考下面的指令碼: 複製代碼 代碼如下: // utility function to retrieve an expiration data in proper format;
Time of Update: 2017-01-19
【程式源碼】 這個效果主要體現在CSS和javascript的配合上 CSS代碼 複製代碼 代碼如下: ul, li {margin: 0; padding: 0; border: 0;} .shop-rating { height: 25px; overflow: hidden; zoom: 1; padding: 2px 0; position: relative; z-index: 999; font:12px Arial; color:#000; line-height:1.2em }
Time of Update: 2017-01-19
不就利用window對象的setTimeout方法嗎?Bingo,一點沒錯!如果你在一個應用裡面常常要“延時執行某某函數”,那末基於DRY的原則,可以針對Function全域對象進行擴充,為函數增加一個延時方法如delay,這樣會讓你的代碼更簡潔有效。 擴站Function對象增加delay方法如下: 複製代碼 代碼如下: Function.prototype.delay=function(this1,timeout){ this1=this1||null; timeout=timeout||0
Time of Update: 2017-01-19
代碼依然簡單。所以依然沒什麼好解釋的。。 複製代碼 代碼如下: /** KOverLoad 一個建立重載函數的輔助方法。 補充上次的函數。 @Author ake 2010-07-03 @weblog http://www.cnblogs.com/akecn */ var KOverLoad = function(scope) { this.scope = scope || window; //預設添加方法到這個對象中。同時添加的方法的this指向該對象。 this.list = {};
Time of Update: 2017-01-19
函數式編程簡介 說到函數式編程,人們的第一印象往往是其學院派,晦澀難懂,大概只有那些蓬頭散發,不修邊幅,甚至有些神經質的大學教授們才會用的編程方式。這可能在曆史上的某個階段的確如此,但是近來函數式編程已經在實際應用中發揮著巨大作用了,而更有越來越多的語言不斷的加入諸如 閉包,匿名函數等的支援,從某種程度上來講,函數式編程正在逐步“同化”命令式編程。 函數式編程思想的源頭可以追溯到 20 世紀 30 年代,數學家阿隆左 . 丘奇在進行一項關於問題的可計算性的研究,也就是後來的 lambda 演算。
Time of Update: 2017-01-19
1、簡單形式的封裝調用 複製代碼 代碼如下: var userName = function() { return "jeff wong" } (); alert(userName); 上面的代碼確實簡單,我們可以逐步分解成下面的寫法: 複製代碼 代碼如下: var anonymousFunc = function() { return "jeff wong" }; //匿名函數 var name = anonymousFunc(); //執行該函數 返回人名 alert(name); 2、
Time of Update: 2017-01-19
這很酷,因為這使你可以僅通過 css來對錶格行(<tr>)應用滑鼠滑過事件(mouseover)時的特殊效果。然而,萬惡的IE,對 :hover偽類頂多隻提供了有限的支援,具體支援的程度要取決於你的IE瀏覽器的具體版本。 Whatever:hover 是一個小小的指令碼,它可以迅速、自動地為IE6,IE7,IE8添加標準的 :hover、:active 和:focus 偽類支援。第三版引入了 ajax 支援,意味著通過
Time of Update: 2017-01-19
如果網頁處於焦點狀態返回true,否則返回fasle 什麼是焦點?焦點是指使用者是否活動在該頁面.確切的說滑鼠是否在該網頁內活動.或者說該網頁中的內容是否有被選中的,或者游標存在於該頁的某個元素內.如果具備其中一個條件那麼該頁就處於焦點狀態.注意hasFocus方法只針對網頁不針對瀏覽器.下面的執行個體中.你用滑鼠點擊網頁時候.該網頁處於焦點狀態.你用滑鼠點擊瀏覽器的地址欄以後.該網頁失去焦點並顯示false. 再次提醒hasFocus方法只能運行在document對像.請看下面執行個體
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
大家在使用JavaScript的時候,DOM操作是最平常不過的了,
Time of Update: 2017-01-19
複製代碼 代碼如下: var obj = new Object(); obj.triggerOnce = function(fn) { //控制讓函數只觸發一次 return function() { try { fn.apply(this, arguments); } catch (e) { var txt = "There was an error on this page.\n\n"; txt += "Error message: " + e.message + "\n\n"; txt +
Time of Update: 2017-01-19
話說在樓豬理解和實踐能力尚欠火候的時候,在這篇裡曾經照搬了李戰老師不少東西寫在自己的部落格裡作為“知識儲備”。這一次還是不能免俗。在翻到第5章的時候,被開篇第二段話深深吸引和折服:“函數具有對象的全部特徵,你完全可以把函數當對象調用。其實,函數就是對象,只不過比一般的對象多了一個括弧“{}”操作符,這個操作符用來執行函數的邏輯,即函數本身還可以被調用,一般對象卻不可以被調用,除此之外完全相同”。寥寥數語,卻深刻闡釋了對象和函數的關係。下面樓豬就通過自己寫的幾段簡單代碼,論證一下javascrip
Time of Update: 2017-01-19
在一些Javascript庫中可以看見這種寫法: 複製代碼 代碼如下: (function(){ //所有庫代碼代碼 })();
Time of Update: 2017-01-19
但不知道大家有沒遇到這樣一種情況,新開的視窗是通過<a href="" />開啟 的,而不是window.opener或showModalDialog開啟的。 尤其是需要注意的是:這個href指向的地址(頁面)不是我們開發的,譬如,我們將href指向www.cnblogs.com。 OK,問題來了:假如我們在a 所在的頁面有個按鈕,可以觸發點擊事件並進行一些操作。 而這個點擊事件需要在href開啟的IE視窗關閉後觸發。。。
Time of Update: 2017-01-19
系列簡介 也許,三百年前的艾薩克·牛頓爵士(Sir Issac Newton, 1643-1727)並沒幻想過,物理學廣泛地應用在今天許多遊戲、動畫中。為什麼在這些應用中要使用物理學?筆者認為,自我們出生以來,一直感受著物理世界的規律,意識到物體在這世界是如何"正常移動",例如射球時球為拋物線(自旋的球可能會做成弧線球) 、石子系在一根線的末端會以固定頻率擺動等等。要讓遊戲或動畫中的物體有真實感,其移動方式就要符合我們對"正常移動"的預期。 今天的遊戲動畫應用了多種物理類比技術,例如運動學類比(
Time of Update: 2017-01-19
在瀏覽器中,我們一旦把節點添加到document.body(或者其他節點)中,頁面就會更新並反映出這個變化,對於少量的更新,一條條迴圈插入也會運行很好,也是我們常用的方法。代碼如下: 複製代碼 代碼如下: for(var i=0;i<5;i++){ var op = document.createElement("span"); var oText = document.createTextNode(i); op.appendChild(oText);
Time of Update: 2017-01-19
使用類庫可以比較容易的解決相容性問題.但這背後的機理又是如何呢? 下面我們就一點點鋪開來講.首先,DOM Level2為事件處理定義了兩個函數addEventListener和removeEventListener, 這兩個函數都來自於EventTarget介面. 複製代碼 代碼如下: element.addEventListener(eventName, listener, useCapture); element.removeEventListener(eventName,
Time of Update: 2017-01-19
在開發中大家也都會注意盡量使用StringBuilder而不採用普通的字串拼接方式。但是可能大部分開發人員卻忽略了js中也需要注意這種效率問題。 下面進行一項效能測試,用事實來說話! 複製代碼 代碼如下: function xntest(){ var d1=new Date(); var str=""; for(var i=0;i<10000;i++){ str+="stext"; } var d2=new Date();