JavaScript函数和作用域

121 阅读2分钟

1. 函数

函数是一个特定代码块容器,它可以完成特定需求并重复利用。它通过抽取重复代码,封装到函数里面来重复使用,提高开发效率

  • 函数的声明语法:

    function 函数名() {
    函数体
    }
    ​
    //函数传参的声明
    function 函数名(参数列表) {
    函数体
    }
    
  • 函数的调用语法:

    函数名()   //声明的函数必须调用才会真正的被执行
    函数名(传递的参数)
    
  • 形参和实参:

    声明函数时写在函数名小括号里的叫形参,调用函数时写在函数名小括号里的叫实参,参数中间用逗号隔开。

  • 函数返回值

    -当调用函数时把计算后的处理结果给返回出来,当函数需要返回数据出去时,使用return关键字。

    -函数内部只能出现一次return,并且return后面代码不会被执行,return后面的数据不能换行写

    -函数可以没有return, 这种情况函数默认返回值为undefined

2. 作用域

在JavaScript中,变量的作用域主要分为3种

  • 全局变量:

    全局即整个script标签内任何区域都可以访问和修改

  • 局部变量:

    作用于函数内的代码环境,只能在当前函数内部访问和修改

  • 块级变量:

    块级作用域由{ }包括,不能跨块和函数访问

特殊情况:如果函数内部或块级作用域内部的变量没有声明,直接赋值,也能当全局变量看,强烈不推荐这样使用。 另外有一种情况是,函数内部的形参可以看做是局部变量

3. 匿名函数

函数可以分为具名函数和匿名函数,匿名函数的写法是function(){}

将匿名函数赋值给一个变量,并通过变量名进行调用,这个叫函数表达式

let fn = function() {
//function body
}
​
fn() //调用函数

立即执行函数:

避免全局变量之间的污染,多个立即执行函数要用;隔开,不然报错。

(function () {console.log(11)})();
​
(function () {console.log(11)})();

\