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(){}会立即且只执行一次