【无标题】

认识函数

     1.定义函数:

  1.     /*
  2.     声明式定义函数:
  3.        function 函数名(){}
  4.        函数名:自己定义,命名规则和规范同变量(不能以数字开头,极度推荐驼峰命名方法,比如:shouBiao)
  5.        () :必须带
  6.        {}: 代码块
  7.        赋值式定义函数
  8.        var 函数名= function(){}
  9.     1.3 注意:函数不调用不执行
  10.     */
  11.     // 2. 调用函数:   函数名();
  12. 函数一旦被调用,{}内部的代码会执行

  函数的参数

  1.   // 函数的参数:有时候呀,我们根据传入不同的数据,得到的结果也不一样,函数的参数可以解决这种问题
  2.     // 函数的参数的分为:
  3.     //      形参:函数定义时()中的参数叫形参
  4.     //      实参:函数调用的时候()的参数叫实参
  5.     //      参数的个数可以是0个或者多个
  6.     //  函数调用时,就将实参传递给形参
  7.     // function getSum(形参){}
  8.     // getSum(实参)

      函数的返回值

  •  // 函数特点:函数内部定义的变量,函数外部访问不到
  •   // 函数的返回值:有的时候,我们想让函数给我们返回出来一个结果,就可以使用return
  •     // 使用方式:在函数定义的 最底部,通过return 把结果带出来
  •     // 带返回值的函数:函数调用(getSum())的结果就是return 后的结果(sum)  getSum()==sum

函数的中断

  • / return : 1、返回函数的运算结果
  •     //          2、终止函数的执行
  •     //          3、任何函数都有return,如果用户不写,函数内部的最低端默认有一行 return undefined;

例子:sum(); //一层含义:只调用函数

  console.log(getsum());//两层含义:1、 调用函数 ,2、输出函数的返回值

<!-- 定义函数,求10的阶乘 -->
<!-- <script>
    function cj() {
        var sum=1;
    for(i=10;i>=1;i--){
        sum=sum*i
    }
    document.write(sum)
    }
    cj()
</script>  -->

作用域:

// 作用域:一段代码生效的范围
// 1. 全局作用域:
// 1.1 位置:变量定义在script标签内,函数外部的区域,具有全局作用域,拥有全局作用域的变量可以在任何地方访问到
// 1.2 生命周期: 打开一个页面就产生了一个全局作用域,页面关闭,全局作用域就销毁(抽象的概念)
// 1.3 注意:全局作用域中有一个叫window的对象,可以直接访问的
// 2. 局部作用域(函数作用域)
// 2.1 位置:定义在函数内部,拥有局部作用域,变量只能函数内部访问,函数外部访问不到
// 2.2 生命周期:局部作用域在函数调用时产生,函数调用结束销毁
// 2.3 注意:只有定义在函数内部的变量拥有局部作用域,在if(){}或者for(){}没有局部作用域

变量的访问规则:

// 变量的访问规则:
// 先访问当前作用域下有没有定义变量,没有的话向上查找
// var x = 10;
// function fn(){
// var x = 20;
// console.log(x); //20
// }
// fn();
// console.log(x);//10
// 变量的赋值规则:
// 先访问当前作用域下有没有定义变量,有的话,就给当前作用域的变量赋值,没有的话,向上查找

预解析:提前解释代码:

// 预解析:提前解释代码
// 浏览器内核:渲染引擎(解释html和css)和js引擎(解释性语言,从上向下一行一行解释说明)
// js引擎在执行js代码的时候,把var 和function提升到当前作用域的最顶端
// 变量提升的只是声明部分
// 函数提升(提升的声明式 ===》 function fn(){}),提升函数整体
// 函数提升优先于变量提升

递归:

// 递归:在函数内部直接或者间接的调用函数本身
// 递归需要有出口,没有出口就形式死递归(Maximum call stack size exceeded : 栈溢出)
// 终止函数:return;
// 终止循环:break;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值