JavaScript第六天学习总结

141 阅读4分钟

JavaScript第六天学习总结

函数

什么是函数

执行特定任务的代码块

函数的作用

可以实现代码复用,提高开发效率

函数的使用

声明语法

function关键字 函数名() { 函数体}

function sayhi() {
            console.log("你真好!");
            console.log("你真棒!");
        }

调用语法

函数名();

sayhi();

函数的参数

声明语法

function关键字 函数名(参数列表) { 函数体}

参数列表

  1. 传入数据列表
  2. 声明这个函数需要传入几个数据
  3. 声明多个数据用逗号隔开
function sum(num1,num2) {
            document.write(num1 + num2)
        }

调用语法

函数名(传递的参数列表);

sum(10,20);

形参

声明函数时写在函数名右边小括号的参数叫形参(形式上的参数)

function关键字 函数名(形参1,形参2){函数体..}

实参

调用函数时写在函数名右边小括号里的叫实参(实际上的参数)

函数名(实参1,实参2);

注意点

  1. 开发中尽量保持形参和实参个数一致
  2. 不能上面形参写(num1,num2) 下面函数体却写(num2,num1)
  3. 不能只写一个实参,否则会出错因为只设置一个实参,因为只设置一个值另一个没赋值的实参默认为undefined)

函数的返回值

作用

  • 函数内部不需要输出结果,而是要返回结果
  • 对执行结果的扩展性更高,可以让其他的程序使用这个结果

return关键字

语法

return 数据

function getMax(n1,n2) {
            if (n1>n2) {
                return n1;
            }else{
                return n2;
            }
        }
       document.write( getMax(1,3));
注意点
  1. 在函数体中使用 return 关键字能将内部的执行结果交给函数外部使用
  2. 函数内部只能运行到 1 次 return,并且 return 后面代码不会再被执行,所以 return 后面的数据不要换行写
  3. return会立即结束当前函数
  4. 函数可以没有 return,这种情况函数默认返回值为 undefined

函数的作用域(重点)

原理

通常来说,一段程序代码中所用到的名字并不总是有效和可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域

作用

提高了程序逻辑的局部性,增强了程序的可靠性,减少了名字冲突。

全局作用域

  1. 直接写在script标签里面的代码
  2. 全局变量 任何地方都可以访问
        // 全局变量
        let num = 100;
        function max() {
            // 使用全局变量,任何地方都可以调用
            console.log(num);
        }

函数作用域-局部作用域

  1. 写在函数中的变量
  2. 只能在自己的大括号中使用,不能在它的大括号之外使用的,否则就会报错!!
  3. 作用于函数内的代码环境,就是局部作用域。 因为跟函数有关系,所以也称为函数作用域。
      let msg = 10000; // 全局变量
      // 局部变量  函数内部 声明的变量
      function getMax() {
        // 声明一个数字
        let num = 200; // 局部变量
      }
      // 局部变量 不能在 超出它的大括号来使用
      console.log(num); // 会报错 

块级作用域

  1. 块作用域由 { } 包括,if语句和for语句里面的{ }等
  2. 类似局部变量,也是超出了自身的大括号不能使用
for (let index = 0; index < 2; index++) {
         // num 块级变量 
         let num = 100;
       }
       console.log(num);// 使用块级变量  出错!! 

作用域链

  1. 是一种代码寻找变量来执行的机制规则
  2. 遵循就近原则
  3. 就近的参照物是函数的声明、函数的定义来寻找最近的变量
      // 判断当前变量 输出是什么  
      // 就近原则   判断是要根据 函数的定义 来判断 而不是函数的调用 
      // 函数的定义 代码位置来判断  100  这个!! 
      let num = 100;
      function func1() {
        let num = 200;
        // 函数的调用 
        fun2();
      }
      // 函数的定义-声明 
      function fun2() {
        console.log(num);
      }

      func1();

匿名函数

  1. 函数按照有没有名字分为两种
  2. 有名字--具体函数
  3. 没有名字---匿名函数

语法

匿名函数 = function(){}

函数表达式

let func = function(){函数体}

调用

func();

let func2 = function () {
        console.log("123");
      };
      // 调用
      func2();

自执行函数

  1. 自执行函数 = 匿名函数一起出现 通用的功能是 防止变量污染
  2. 函数在定义的同时 直接就执行了
  3. 函数包装多段代码 让程序比较简洁
  4. 多个立即执行函数要用 ; 隔开,要不然会报错

语法

(function(){})();

(function () {
         let msg = 123;
         // 设置 页面的标题 =  月薪过万
         document.title = '月薪过万';
         // 设置 页面的背景颜色 =  黄色
         document.body.style.backgroundColor = 'yellow';
       })();