標籤:javascript函數
1.函數自執行
JavaScript中不像C#中那樣要求所有路徑都有傳回值,沒有傳回值就是undefined
(function(){alert(1);}());
(function(){alert(1);})();
!function(){alert(1);}();
void function(){alert(2);}();
2.可變參數
js函數無法像C#方法那樣重載 下面的代碼等於是對a函數重新定義
function a() {
alert("無參函數");
}
function a(p1) {
alert("一個參數函數");
}
function a(p1,p2) {
alert("兩個參數函數");
}
//結果全部是 兩個參數函數
a();
a(2);
a(1, 2);
利用arguments內建數組
function css() {
if(arguments.length==2) //取值
{
return arguments[0].style[arguments[1]];
}
else {
arguments[0].style[arguments[1]] = arguments[2]; //賦值
}
}
window.onload = function () {
var oDiv = document.getElementById(‘div1‘);
alert(css(odiv, ‘width‘));
css(odiv, ‘background‘, ‘green‘);
}
3、預解析
//結果彈出undefined
var a = 10;
function A()
{
alert(a); //undefined
var a = 20;
//var a;
//alert(a);
//a=20;
}
A();
//結果20
function Test()
{
function A() {
return 10;
}
alert(A());
function A() {
return 20;
}
}
Test();
開啟定時器:
setInterval 間隔性
setTimeout 延時型
停止定時器(根據傳回值)
clearInterval()
clearTimeout()
定時器執行函數 參數為 "函數名()" 如果是function(){}會立即且只執行一次
javascript-函數和定時器