對於 if 語句括號裡的表示式,ecmascript 會自動呼叫boolean()
轉型函式將這個表示式的結果轉換成乙個布林值。如果值為 true,執行後面的一條語句,否則不執行。
通過arguments 物件的length屬性,來智慧型的判斷有多少引數,然後把引數進行合理的應用 。
比如,要實現乙個加法運算,將所有傳進來的數字累加,而數字的個數又不確定。
functionbox()
return
sum
;
//返回累加結果
}
函式內部,有兩個特殊的物件:arguments 和 this。arguments 是乙個類陣列物件,包含著傳入函式中的所有引數,主要用途是儲存函式引數。但這個物件還有乙個名叫 callee 的屬性,該屬性是乙個指標,指向擁有這個 arguments 物件的函式。alert(box(
5,
9,
12));
對於階乘函式一般要用到遞迴演算法,所以函式內部一定會呼叫自身;如果函式名不改變是沒有問題的,但一旦改變函式名,內部的自身呼叫需要逐一修改。為了解決這個問題,我們可以使用arguments.callee
來代替。
function box(
num)
else
}
直接接收 event 物件,是 w3c 的做法,ie 不支援,ie 自己定義了乙個 event 物件,直接在 window.event 獲取即可。
w3c 中的 target 和 ie 中的 srcelement,都表示事件的目標。input.onclick =
function(evt);
functiongettarget(evt)在阻止冒泡的過程中,w3c 和 ie 採用的不同的方法,那麼我們必須做一下相容。document
.onclick =
function(evt);
functionstoppro(evt)
functionpredef(evt)else
}
當我們右擊網頁的時候,會自動出現 windows 自帶的選單。那麼我們可以使用 contextmenu 事件來修改我們指定的選單,但前提是把右擊的預設行為取消掉。
functionaddevent(obj,type, fn)else
if
(obj.attachevent)
}
functionremoveevent(obj,type, fn)else
if
(obj.detachevent)
}
addevent(
window,
'load',
function());
});
});
文件模式在開發中貌似很少用到,最常見的是就是在獲取頁面寬高的時候,比如文件寬高,可見區域寬高等。
ie對盒模型的渲染在 standards mode和quirks mode是有很大差別的,在standards mode下對於盒模型的解釋和其他的標準瀏覽器是一樣,但在quirks mode模式下則有很大差別,而在不宣告doctype的情況下,ie預設又是quirks mode。所以為相容性考慮,我們可能需要獲取當前的文件渲染方式。
document.compatmode正好派上用場,它有兩種可能的返回值:backcompat
和css1compat
。
backcompat:標準相容模式關閉。瀏覽器客戶區寬度是document.body.clientwidth
;
css1compat:標準相容模式開啟。 瀏覽器客戶區寬度是document.documentelement.clientwidth
。
例如:
functiongetviewport()
}
else
}
}
functiongetstyle(element, attr)else
if
(
typeofelement.currentstyle !=
'undeinfed')
}
標準瀏覽器支援 insertrule, ie低版本則支援 addrule。
window.innerwidth
,window.innerheight與document.documentelement.clientwidth,document.documentelement.clientheight
注:用jquery獲取的頁面的寬度頁面不包括滾動條的寬度的
window.innerwidth與window.innerheight(ie9及以上,谷歌,火狐識別,寬高包含滾動條的寬度)
document.documentelement.clientwidth與document.documentelement.clientheight(ie,火狐,谷歌都能識別,寬高不包含滾動條的寬度)
如果頁面沒有滾動條:
window.innerwidth==document.documentelement.clientwidth,
window.innerheight==document.documentelement.clientheight(ie8及一下不識別window.innerheight與window.innerwidth)
//跨瀏覽器獲取視口大小functiongetinner()
}
else
}
}
這個是瀏覽器隔離的,每個瀏覽器都會把localstorage儲存在自己的userdata中,如chrome一般就是
c:\users\
知海匠庫web前端課程研發自網易系,專案教學,貼合企業用人需求,助你高薪就業。
初學者應該如何學習web前端
優秀的前端開發工程師要在知識體系上要有廣度和深度,要具備快速學習的能力。前端開發工程師不僅要掌握基本的web前端開發技術,效能優化 及一些基礎知識,而且要學會運用各種工具進行輔助開發以及理論層面的知識,包括 的可維護性 分層語義模板和瀏覽器分級支援等。新手學習前端的話,一定要想想為什麼要學習它,是出...
WEB前端初學者筆記(16) 表單事件
在j ascript中,常用的表單事件有3種。onfocus表示獲取焦點時觸發的事件,而onblur表示失去焦點時觸發的事件,兩者是相反操作。onfocus和onblur這兩個事件往往都是配合一起使用的。例如使用者準備在文字框中輸入內容時,此時它會獲得游標,就會觸發onfocus事件。當文字框失去游...
WEB前端初學者筆記(14) 陣列和物件
陣列物件的作用是 使用單獨的變數名來儲存一系列的值。陣列可以用乙個變數名儲存所有的值,並且可以用變數名訪問任何乙個值。陣列中的每個元素都有自己的的id,以便它可以很容易地被訪問到。1 var mycars new array 2 mycars 0 saab 3 mycars 1 volvo 4 my...