JS函数

声明

    function 函数名() {
        // 函数体
    }

调用 :

    函数名
    函数名()

demo

<script >
    function sayHello(){
        console.log("hello js")
    }
    sayHello()
</script>

参数

形式参数 : 在函数声明时, 设置的参数。作用:占位置 ,只能在函数内部使用. 实际参数 : 在函数调用时,传入的参数。 作用 : 函数调用时,会把实参的值赋值给形参, 这样形参就有了值, 在函数体里,,,可以直接使用形参!

//带参数的函数声明
function 函数名(形参1, 形参2, 形参...){
  //函数体
}

//带参数的函数调用
函数名(实参1, 实参2, 实参3);

计算2个数的和

<script >
    function sum(n1,n2){
        console.log(n1 + n2)
    }
    sum(10,3)
</script>

返回值

函数返回值注意事项:

  • return后面的语句不执行。
  • 函数可以没有返回值,函数如果没有return,那么返回结果是undefined。
  • 函数的参数可以有多个,但是返回值只能有1个。
//声明一个带返回值的函数
function 函数名(形参1, 形参2, 形参...){
  //函数体
  return 返回值;
}

//可以通过变量来接收这个返回值
var 变量 = 函数名(实参1, 实参2, 实参3);

计算2个数结果返回

<script >
    function sum(n1,n2){
       return n1 + n2
    }
    var r= sum(10,13)
    console.log(r)
</script>

匿名函数

匿名函数:没有名字的函数 将匿名函数赋值给一个变量,这样就可以通过变量进行调用

    var 函数名 = function(){
      //函数体
    }
<script >
   var sum = function (n1,n2){
       return n1 + n2
    }
    console.log(sum(3,13))
</script>

自执行(匿名函数自执行1次):第一个括号:匿名函数保护起来,第二个小括号:调用

( 匿名函数)()
(function () {
      console.log("自执行函数")
  })();

需要注意匿名函数的分号

<script >
    var a = 10;
    var b = 20;
    b = a;
    (function () {
        console.log(b);
    })();

</script>

作用域

变量起作用的区域 全局作用域:在script标签内,函数外的区域就是全局作用域,在全局作用内声明的变量叫做全局变量 。全局变量可以在任意地方访问。 函数作用域 :在 函数内的区域 叫做函数作用域,在函数作用域内声明的变量叫做局部变量 ,局部变量只有在当前函数内才能访问到。

全局变量:在函数外,script标签内声明的变量就是全局变量,全局变量在任何地方都能访问的到。 局部变量:在函数中声明的变量,就是局部变量,局部变量只有在当前函数体内能够访问。 隐式全局变量:没有使用var定义的变量也是全局变量,叫做隐式全局变量。

预解析

js执行代码分为两个过程:

  • 预解析过程(变量与函数提升)
  • 代码一行一行执行
console.log(num);
var num  = 1
console.log(num)

预解析过程

  1. 把var声明的变量提升到当前作用域最前面,不会提升赋值。
  2. 把函数声明提升到当前作用域的最前面。
  3. 如果函数同名 , 后者会覆盖前者 。
  4. 如果var声明的和函数声明的同名, 函数优先。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券