2023-01-28 JS函数

函数的要素

调用时机

时机不同,结果不同

作用域

全局变量 与 局部变量
window上的变量 与 顶级作用域 上的变量属于全局变量,其他都是局部变量

就近原则

闭包

JS函数会用到最近的外面的函数
如果一个函数用到了外面的变量,这个函数加这个变量叫做闭包


闭包

形式参数

形参不是实际参数,是用来区分、
形参可认为是变量声明

返回值

每个函数都有返回值
执行后才有返回值
不写return也有返回值undifined

调用栈

js在调用函数前,会把函数所在的环境push到一个数组中,数组叫调用栈。
函数调用完后,弹出(POP)到之前的环境,继续执行。

箭头函数

箭头函数没有this和argument
不有通过call,bind等来指定绑定this,永远和外层一样的this,自己无this

立即执行函数

出来的环境是 为了拥有局部变量,通过申明一个变量,在函数里面定义局部变量
但是会多出来个全局函数,相当于又来了个弊端
所以用匿名函数来包裹局部变量,并立即进行执行,不会多一个
但传统函数形式会报错,程序员们发现在前面加个操作符就不会报错,所以所有立即执行函数的格式但生成了,比如加括号或感叹号(推荐)

你可能感兴趣的:(2023-01-28 JS函数)