JS函数功能及应用

一、函数的概念

函数:就是封闭了一段可被重复调用执行的代码块。通过此代码块可以实现大量代码的重复使用。

  • 函数可以带参数,也可以不带参数。
  • 带参数的,函数声明中的为形参,形参无需声明定义,默认为undefined。
  • 调用函数的实参,实参个数可以与形参个数不一致,但调用结果不可预期,建议相匹配。

二、函数的定义与调用

<script>
    // 函数定义
    function print( str){
      console.log(str);
    }
    // 函数调用
    print("我们都是中国人!");
</script>

三、return会中止函数,只能返回一个值

<script>
    //  return 会终止函数,
    function print( num1,num2){
       return(num1 + num2);
      console.log("这一句是不会被执行的,因为在return之后!");
    }
    console.log(print(1,3));

    //  return 只能返回多个值 时,只能返回最后一个值
    function fun1( num1,num2){
      return num1, num2;
    }
    console.log(fun1(1,4));   // 返回值为4

    // 通过返回数组,可以返回多个值
    function  fun2(num1,num2){
      return[num1 + num2, num1 - num2, num1 * num2, num1 / num2];
    }
    console.log(fun2(10,5));
 </script>

四、函数返回值的特殊情况

  • 函数没有返回值时 ,返回值为undefined。
  • return 不仅退出函数中的循环,也退出函数。

五、函数的arguments对象

每个函数内置了arguments对象,且只有函数有,其中存储了传递的所有实参。
展示形式是一个伪数组,并不是真正意义上的数组。
有了arguments,函数就可以写形参了。
1、具有数组的长度。
2、按照索引的方式进行存储的。
3、没有数组的一些方法pop(),push()等。
//可以按照数组的方式遍历arguments。
示例,求任意个数的最大值。

<script>
  // 利用arguments 求任意个数中的最大值
  function  num() {
    var max = arguments[0];
    for (var i = 1; i <= arguments.length;  i++) {
      if (arguments[i] > max) {
        max = arguments[i];
      }
    }
    return max;
  }
  console.log(num(12, 1, 56, 89, 99, 2, 1));  // 控制台输出 99
</script>

六、函数声明的两种方式命名方式和匿名方式

<script>
  // 1.函数声明的两种方式,一是命名函数的方式
  function fun1(){
    console.log('876');
  }
  fun1();
  
  // 2.函数声明的两种方式,二是函数表达式(匿名)的方式
  var fun = function (){  //fun是变量名,与声明变量差不式,保存的是函数
    console.log('998');
  }
  fun();  //调用时以变量名()的方式进行。
</script>

JavaScript作用域
就是代码名字(变量)在某个范围内起作用和效果,目前是为了提高程序的可靠性,更重要的是减少命名产冲突。
1)全局作用域:整体script标签,或者一个单独的js文件。
2)局部作用域:只在函数内部起作用,也称为函数作用域。
变量作用域:全局变量:在全局作用域下的变量。
局部作用域:在局部作用域下的变量。

从执行效率来看:
全局只有浏览器关闭时才会销毁,比较占用内存资源 。

js在es6的时候新增了块级作用域。
作用域链:内部函数访问外部函数的变量,采取的是链式查找的方式来决定取那个值,就近原则。
在这里插入图片描述

七、预解析

<script>
  // 问题1 不声明,定义,
  // console.log(num); //直接输出会报错: Uncaught ReferenceError: num is not defined
  // 问题2,坑1 先输出,后声明定义
  console.log(num1);  // 报:undefined
  var num1 = 10;
  //相当于以下代码
  var num1;
  console.log(num1);
  num1 = 10;
  // 问题3 函数先调用,后声明定义
  fn();  // 可以正常使用 输出“后声明”
  function fn(){
    console.log("后声明");
  }
  // 问题4 坑2,直接调用以声明变量方式声明的函数
  fun();  // Uncaught TypeError: fun is not a function
  var fun = function (){
    console.log("以变量方式声明函数");
  }
  // 相当于以下代码
  var fun;
  fun();
  fun = function (){
    console.log("以变量方式声明函数");
  }
  
</script>
  1. 浏览器JS引擎先将代码预解析,再执行。
  1. 会将所有的var,还有function提升到当前作用域的最前面。
  2. 代码执行,按照代码书写的顺序从上往下执行。
  1. 预解析分为 变量预解析(变更提升)和函数预解析(函数提升)
    1)变更提升:就是将所有变量声明提升到当前作用域最前面,不提升赋值操作。
    2)函数提升:就是把所有的函数声明提升到当前作用域的最前面,不调用函数
<script>
  // 预解析案例
      f1();
      console.log(c);
      console.log(b);
      console.log(a);
  function  f1(){
      var a = b = c = 9;
      //相当于var a = 9; b = 9; c = 9;
      //集体声明 var a = 9, b = 9, c = 9;
      console.log(c);
      console.log(b);
      console.log(a);
  }
</script>

输出结果如下:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JavaScript函数是一种可重复使用的代码块,它可以接受输入参数并返回值。函数可以用来组织代码、减少重复代码、提高代码的可读性和可维护性。在JavaScript函数可以通过函数声明、函数表达式和箭头函数来定义。函数可以有任意数量的参数,也可以没有参数。函数可以返回任何类型的值,包括数字、字符串、布尔值、对象和函数等。函数可以在全局作用域或局部作用定义,也可以作为对象的方法来定义。在JavaScript函数是一等公民,可以作为参数传递给其他函数,也可以作为返回值返回给其他函数。 ### 回答2: JavaScript函数是一种非常重要的概念,它允许我们定义一段可重复使用的代码片段,同时还可以让我们更好的组织和管理程序的结构。在JavaScript函数可以作为一个值进行处理,可以使用函数表达式或函数声明定义。 函数声明是定义函数的最简单方式,它使用“function”关键字和函数名称来声明一个函数,例如: ``` function greeting() { console.log("Hello World"); } ``` 这里定义了一个简单的函数功能是输出“Hello World”到控制台。我们可以通过使用函数名来调用它: ``` greeting(); ``` 输出结果为“Hello World”。 除了函数声明外,还有一种常见的函数定义方式——函数表达式。函数表达式是定义一个函数并将其赋值给一个变量,例如: ``` var greeting = function() { console.log("Hello World"); }; ``` 这里定义了一个变量greeting,并将一个匿名函数赋值给它。我们可以通过使用变量名来调用该函数: ``` greeting(); ``` 输出结果为“Hello World”。 JavaScript函数支持一个特殊的参数对象——arguments对象,它可以让我们在函数内部访问到所有传递给该函数的参数。例如: ``` function sum() { var result = 0; for (var i = 0; i < arguments.length; i++) { result += arguments[i]; } return result; } ``` 这里定义了一个函数sum,它可以计算任意数量的参数的和。我们可以使用以下代码来调用该函数并输出结果: ``` console.log(sum(1, 2, 3, 4)); //输出10 console.log(sum(10, 20)); //输出30 ``` 总的来说,JavaScript函数是一项非常重要的技能,它可以帮助我们更好的组织和管理我们的程序,并且可以帮助我们构建可重复使用的代码片段。掌握JavaScript函数,是掌握JavaScript编程的重要一步。 ### 回答3: JavaScript是目前世界上最流行的动态编程语言之一,已成为很多网站和Web应用程序的必选之一。JavaScript函数是编写高度可重复使用的代码和组织逻辑的基本组成部分,也是JavaScript编程的核心。随着Web应用场景的复杂化,函数JavaScript编程的重要性越来越得到了认识和应用,学习和掌握JavaScript函数是很有必要的。 JavaScript函数与其他编程语言函数类似,是一个代码块,可以接受参数,返回值,并可重复使用。JavaScript函数有两种常用的定义方式,分别是函数声明和函数表达式。函数声明是指在代码提前声明一个函数函数表达式是指将一个函数赋值给一个变量或常量。 在JavaScript函数,参数和返回值都是可以选择性的。一个函数可以不需要参数也不需要返回值,也可以仅需要参数或仅需要返回值。使用参数可以让函数更加灵活和通用,参数可以是任何类型,包括字符串、数字、函数和对象等。返回值可以是任何JavaScript支持的类型,包括布尔类型、数字类型、字符串类型和数组等。 函数作用域是JavaScript函数编程的一个关键概念,它指的是一段代码能够访问和操作的变量和函数的范围。JavaScript函数有词法作用域,即变量的作用域取决于它们在代码的位置,作用范围被限定在函数内部和它所嵌套的函数。 常用的JavaScript函数应用包括数组和对象的处理、事件处理和DOM操作等。在Web开发JavaScript函数和jQuery库的结合应用很广泛,它可以极大地提高Web应用的交互性和用户体验。 总之,JavaScript函数是一个必须掌握的编程概念,它可以让我们的代码更加灵活、通用、数据安全、易使用和易维护。了解JavaScript函数的语法和应用场景,能够有效地提高JavaScript编程的效率和质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值