作用域
函数外边的变量叫做全局变量,可以在函数外面和函数里面使用。
varnum=1;
functiontest(){
num++;
console.log(num);
}
test();// 2
console.log(num);// 2
函数内部的变量叫做局部变量,只能在函数内部使用。
functiontest(){
varnum1=10;
num1++;
console.log(num1);
}
test();// 11
console.log(num1);// 报错,num1未定义
有一种情况比较特殊,函数内部声名的变量也是全局变量。
functiontest(){
num1=10;
num1++;
console.log(num1);
}
test();// 11
console.log(num1);// 11
总结:
函数外边使用的变量是全局变量,要在全局内找,可以是函数外部声名的变量也可以是函数内部的隐式声名的变量。
函数内部使用的变量是局部变量,先从局部找,如果局部没有,再从全局中找。
递归函数
递归函数就是在函数中调用自己。
// 求10的阶和,即:10+9+8+...+1
functionfacSum(num){
if(num==1){
return1;
}
returnnum+facSum(num-1);
}
varres=facSum(10);
console.log(res);// 55
事件
概念
事件就是用户在网页上的动作,例如:鼠标点击、鼠标移动、键盘按下。。。
事件三要素 : 事件源 + 事件名称 + 事件处理程序
事件源 : 谁触发这个事件 (按钮 btn)
事件名称 : 触发了什么事件 (点击click事件)
事件处理程序 : 事件触发后要执行的代码(函数形式)
初体验:
<inputtype="button"value="按钮"onclick="dian"id="btn">
<scripttype="text/javascript">
functiondian(){
alert("点击了按钮!");
}
</script>
注意:事件处理程序(函数)并不是立马执行,而是当事件触发的时候在会执行(浏览器会自动调用)
事件列表
事件备注
onclick当鼠标左键单击
ondblclick当鼠标左键双击
onmouseover当光标在指定的内容上面
onmouseout当光标离开指定的内容
onkeydown当键盘按下的那一刻
onkeyup当键盘抬起的那一刻
onfocus当输入框得到焦点
onblur当输入框失去焦点
onchange当指定的标签里面内容有变化的时候
onsubmit提交事件
onload当整个网页加载完成后
通常使用事件来驱动函数:
对象.事件=function(){}
对象.事件=函数名;// 调用自定义函数,不能加小括号,否则会提前执行
<标签名 事件名="函数调用">
键盘事件可以区分按下的是哪个键,每个键都由按键码
window.onkeydown=function(e){
varkeyNum=e.keyCode
if(keyNum=="13"){
alert("回车键");
}elseif(keyNum=="8"){
alert("BackSpace键");
}
}