一 arguments
1.arguments 它只能在函数内部使用
2.arguments 是一个伪数组,(实质上是一个对象,像数组而已)
3.它的使用与数组一样的,用于动态接受实参
unction fn() {//不用传实参进来 无形参函数
var sum = 0
for (var i = 0; i < arguments.length; i++) {
sum += arguments[i]
}
return sum//返回sum结果
}
console.log(fn(10, 20, 30));
function fn2() {
if (arguments.length == 1) {
return "你好"
} else if (arguments.length == 2) {
return '大家好'
}
}
console.log(fn2(1, 2));
二 作用域
1.作用域,作用的范围,分为全局作用域和局部作用域
2.函数内部使用的是局部作用域(全局变量)
3.函数外部使用的是全局作用域(局部变量)
4,全局变量能在函数内部使用(调用) 也能在函数外部使用(调用)
三 作用域链
1.作用域链就是函数自身没有局部变量,需要往外层函数寻找 ,如果外层函数有 就直接调用
如果外层函数没有又继续往全局找 如果全局有就直接调用,全局没有的话就报错
2.作用域链就是
找变量的过程
var a=1
function fn(){
//var a=10
function fn2(){
//var a =20
console.log(a)
}
fn2()//1
}
fn()
四 函数的相互调用
1.局部函数能调用全局函数
2.兄弟函数能调用同级函数
3.全局函数不能调用局部函数
function fn1() {
console.log("AAA");
}
function fn2() {
console.log("BBB");
//fn1() 能调用兄弟函数
function fn3() {
fn1()//可以调用全局函数
}
fn3()
}
fn2()
五 通过事件驱动编程
1.js是典型的事件驱动编程
2.通过事件执行函数,事件简述一种交互行为
<button id="btn">点我</button>
<script>
//1.通过id获取页面上的按钮
var obtn=document.getElementById("btn")
//2.通过按钮绑定点击事件,通过事件去驱动(执行)函数
obtn.onclick=function(){
console.log("我被执行了....");
}
</script>