JavaScrip函数

2019-06-07  本文已影响0人  _羊羽_

概述

函数三要素包括:**函数名、参数、返回值
函数声明

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

函数调用

    函数名
    函数名()

eg

<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>

返回值

函数返回值注意事项:

//声明一个带返回值的函数
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声明的和函数声明的同名, 函数优先。
上一篇 下一篇

猜你喜欢

热点阅读