JS解析过程分为两个阶段:编译阶段、执行阶段。在编译阶段会将函数function的声明和定义都提前,而将变量var的声明提前,并将var定义的变量赋值为undefined。
匿名函数:
window.onload = function () { ???????????var oBtn01 = document.getElementById(‘btn01‘); ???????????var oBtn02 = document.getElementById(‘btn02‘); ???????????//注意这里不能有括号,skin01()的话就立刻执行了哦,所以不要加()! ???????????oBtn01.onclick = skin01; ???????????oBtn02.onclick = skin02; ???????}
这就是一个匿名函数,没有名字的~
函数传参(和python差不多~):
<!DOCTYPE html><html lang="en"><head> ???<meta charset="UTF-8"> ???<title>Title</title> ???<script type="text/javascript"> ???????window.onload = function () { ???????????var oDiv = document.getElementById(‘div1‘); ???????????????????????changestyle(‘color‘,‘gold‘); ???????????changestyle(‘background‘,‘hotpink‘); ???????????changestyle(‘width‘,‘300px‘); ???????????changestyle(‘height‘,‘300px‘); ???????????changestyle(‘margin‘,‘50px auto‘); ???????????????????????function changestyle(styl,val) { ???????????????oDiv.style[styl] = val; ???????????} ???????} ???</script></head><body><div id="div1">div元素</div></body></html>
函数传参:
window.onload = function () { ???var oBtn01 = document.getElementById(‘btn01‘);var oBtn02 = document.getElementById(‘btn02‘);//注意这里不能有括号,skin01()的话就立刻执行了哦,所以不要加()!oBtn01.onclick = skin01;oBtn02.onclick = skin02;}
return关键字作用:
1)返回函数执行结果;
2)结束函数的运行;
3)阻止默认行为。
JS——变量和函数的预解析、匿名函数、函数传参、return
原文地址:https://www.cnblogs.com/gaoquanquan/p/9188914.html