js函数——函数的概念、作用域、自定义函数、预定义函数、匿名函数、函数自执行表达式(IIFE)、函数传参、函数的返回值、break ,continue ,return 的区别

目录

函数的概念

作用域(变量起作用的范围) 

预定义函数(eval()isNaN() Number.isNaN())

自定义函数

1.声明函数

 2.调用函数

 函数传参

 函数的返回值

break ,continue ,return 的区别

匿名函数( 函数表达式 )

函数自执行表达式 (IIFE)(两种方式):

箭头函数简介


函数的概念

在JS里面可能会定义非常多的相同代码 或者功能相似的代码,这些代码可能需要大量重复使用
虽然for循环语句也能实现一些简单的重复操作,但是比较有局限性,此时我们就可以使用JS中的函数。
函数:就是封装了一段可被重复调用执行的代码块,通过此代码块可以实现大量代码的重复使用。

函数作用简答:可将大量代码重复使用。

作用域(变量起作用的范围) 

作用域分为 全局作用域  和 局部作用域(又称块作用域)

变量的作用范围是由声明变量所用的关键字决定的(关键字:var、let、const)

  • 全局变量 :在函数外声明的变量,在函数内外都可被访问(var)
  • 局部变量 :在函数内声明的变量,只能在函数内访问(let、const)

预定义函数(eval()isNaN() Number.isNaN()

  • eval() 可以把字符串当做js来执行
  • isNaN() 判断参数是否是NaN(非数字) 如果是返回值true 否则返回false 会在输出时候进行类型转换 无法直接判断是不是NaN类型
  • Number.isNaN() 只有参数为NaN的时候 返回值才为true 其他均为false 不会进行类型转换 直接判断是不是NaN类型
const num1 = '1',num2 = 1,num3 = NaN;;
console.log(isNaN(num1),isNaN(num2),isNaN(num3)); // false false true
console.log(Number.isNaN(num1),Number.isNaN(num2),Number.isNaN(num3)); // false false true

自定义函数

自定义函数分为两步:声明函数 和调用函数

1.声明函数

  1. function 声明函数的关键字 
  2. 函数是做某件事情 函数名一般是动词 sayHi
  3. 函数不调用自己不执行
1.声明函数
        function 函数名() {  //函数名不能与使用的id名相同,id是唯一的
            //函数体
        }
        function sayHi() {
            console.log('hi');

        }
 2.调用函数
        函数名()
        sayHi()
        调用函数的时候千万不能忘记小括号

 2.调用函数

 函数名();

//函数声明
function fn(){
    console.log(1);
}
 
//函数的调用
fn();

 函数传参

参数的作用:在函数内部某些值不能固定,我们可以通过参数在调用函数时传递不同的值进去

  • 形参:形式上的参数——给函数声明一个参数(用来接收实参。 形参可以看作是一个不用声明的变量);
  • 实参:实际的参数——在函数调用时给形参赋的值
function func(形参1,形参2...){
    //函数执行代码
}
 
func(实参1,实参2...);//调用时传参

注意点:

  • 函数可以带参数,也可以不带参数
  • 多个参数之间用逗号隔开 形参可以看做是不用声明的变量 。
  •  如果实参的个数和形参的个数一致则正常输出结果
  • 如果实参的个数多余形参的个数,则以形参个数为准
  • 如果实参的个数小于形参的个数 多余的形参定义为undefined最终的结果就是NaN
  • 我们尽量让实参的个数和形参相匹配
  • 在js中形参默认值undefined

形参和实参的执行过程

function cook(aru) {
                //形参是接收实参的 相当于aru='酸辣土豆丝' 形参类似一个变量
                console.log(aru);
            }
            cook("酸辣土豆丝");
            cook("驴肉火烧");

 函数的返回值

函数的返回值:return;语句

函数的返回值格式;
            function 函数名() {
                return 需要返回的结果;
            }

            函数名();  //将函数输出即可看到返回值

        // 我们函数只是实现某种功能 最终的结果需要返回给函数的调用者 通过return
        //只要函数遇到return 就把后面的结果 返回给函数的调用者 函数名()=return后面的结果

举例:
       //求任意两个数的和
         function getSum(num1, num2) {
             return num1 + num2;
         }
         console.log(getSum(1, 2));

函数返回值 注意事项

  1. return 终止函数
  2. return 只能返回一个值
  3. 我们函数 如果有return 则返回 return 后面的值 如果函数没有 return 则返回 undefined
// 函数返回值 注意事项
        //1.return 终止函数
        function getSum(num1, num2) {
            return num1 + num2;
            alert('我是不会被执行的'); //return 后面的代码不会被执行 
        }
        console.log(getSum(1, 2));

        //2.return 只能返回一个值
        function fn(num1, num2) {
            return num1, num2; //返回的结果是最后一个值
        }
        console.log(fn(1, 2));

        //4.我们函数 如果有return 则返回 return 后面的值 如果函数没有 return 则返回 undefined
        function fun1() {
            return 666;
        }
        console.log(fun1()); //返回66
        function fun2 () {

        }
        console.log(fun2()); //undefined

break ,continue ,return 的区别

  •  break :结束当前的循环(for while)
  • continue:跳出本次循环继续执行下次循环(for while)
  • return:不仅可以退出循环还可以返回return语句中的值同时还可以 结束当前函数体内的代码

在forEach中,不能使用 continue 和 break ,可以使用 return 或 return false 跳出循环,效果与 for 中 continue 一样,但是该方法无法一次结束所有循环。

匿名函数( 函数表达式 )

匿名函数:没有名字的函数;

函数表达式:就是把函数存到变量里。

匿名函数的定义

function(形参1,形参2,...){

      函数体;

  }

匿名函数的调用:

var 变量名=function(形参1,形参2,...){
  函数体;
}
变量名();

注意:匿名函数 不存在提升现象,所以在声明函数代码前调用匿名函数会报错。

<script>
    //匿名函数不存在提升现象
    a() // 报错 a is not a function
    var a = function(){
      console.log('调用函数a');
    };
    a() // 成功调用匿名函数函数
  </script>

函数自执行表达式 (IIFE(两种方式)

包装成表达式 IIFE 立即执行函数表达式

(匿名函数)();

方法一举例:

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

方法二举例:

在匿名函数前添加+、-、!、~等符号

//+、-、!、~等符号可以使用%、*、/等不可使用
            +function () {
                alert("你好匿名函数");
            }();

箭头函数简介

箭头函数作用是使函数书写更加简洁方便,让代码更简洁。

主要操作:

在()与{}之间添加=>即可省略function
若函数中有return,则可将{}与return都省略直接在后方写返回值或式子
以过滤函数举例 数组名.filter(参数1,参数2,参数3)

var arr = [70,59,80,100,50];
        var a = arr.filter(function(item,i,a) {
            return item >= 60;
        })  
        console.log(a);
        // 改为箭头函数
        var a =a.filter((item)=> item >= 60);//在()与{}之间添加=>即可省略function
        console.log(a);//若函数中有return,则可将{}与return都省略直接在后方写返回值或式子
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值