1. 函数可以嵌套在其他函数定义中,这样这个函数就能访问被定义时所处作用域内的任何变量,就形成了闭包
2. 函数名称会作为函数内部的局部变量
3. 函数命名通常是以动词或动词为前缀的词组,通常第一个单词小写,多个单词可以使用_进行连接,或是多个单词的首字母大写:
like_this
likeThis
当涉及到私有函数或者内部函数可在字母首部加下划线进行区分
4. 函数如果有return,则函数调用返回指定值,如果没有return则返回undefined,没有return的函数也可以称为过程。
5. 函数可以通过语句声明的形式定义或者以函数定义表达式形式定义。
function add (x, y) { return x + y;} // 语句声明
let add = function (x, y) {return x + y;} // 函数定义表达式
两者在功能和使用上一致,区别在于,语句声明不能出现在除全局代码和其他嵌套函数以外的地方,函数定义表达式不受这种限制。
6. 函数调用有四种形式:
函数调用
方法调用
构造函数调用
通过call和apply间接调用
函数调用:
函数定义时会存在一个形参列表,在函数调用时形参引用会指向实参列表,从而获取参数值