javascript中函数的定义及使用

函数

1.函数的创建

两种方式

语法1:

声明定义一个函数

​ function 函数名称(){

​ 需要执行的代码段

}

2.赋值式创建

即将函数赋值给一个变量进行函数的声明

语法2:

​ var 变量名称 = function(){

​ 需要执行的代码段

}

函数的调用方式

1.声明式的调用:函数的名称()

2.赋值式的调用:变量的名称()

总结:

1.创建函数的时候需要用关键字function声明函数

2.函数的名称最好用语义化命名

3.注意写法

声明函数 function 和函数名称之间需要加空格

参数

经典案例之-素数

分析:

1.常见的素数

2.判断一个数是不是素数,再循环判断一个范围的的数是不是素数

3.起始的值可以设置为2 用当前的值%比当前小1的数

​ 比如现在有一个数是9

​ 9%8==0

​ 9%7==0

前端经典的编程思想,假设法

   // 定义一个数
      var flag = true // 表示你当前这个数就是素数
      var num = 15 // 14 13 12 11 10 9 8 7 6 5 4 3 2 
      for(var i=num-1;i>=2;i--){
          // 判断当前这个数除余每次小1的数有没有余数
          if(num%i==0){
              flag = false
              // 如果求余的时候==0是成立的 表示这个数不是素数
              alert('不是素数')
              /*  
                  带入计算的时候
                      第一次运算 9%8==0 不成立 走的是else 弹出是素数
                      第二次运算 9%7==0 不成立 走的是else 弹出是素数
                      第三次运算 9%6==0 不成立 走的是else 弹出是素数
                      第四次运算 9%5==0 不成立 走的是else 弹出是素数
                      第五次运算 9%4==0 不成立 走的是else 弹出是素数
                      第六次运算 9%3==0 成立 走的是if 弹出不是素数
                      第七次运算 9%2==0 不成立 走的是else 弹出是素数
              */
              break;
          }
          // 循环体内必须要等每次计算结果才可以弹窗 所以在里面是得不出结果的
      }
      // else不要了 拿出来
      // 前端编程思想:假设法
      if(flag==true){
          alert('是素数')
      }
  </script>

解法

  
  <script>
      // 求100~200之间的所有素数
      for (var j = 100; j <= 200; j++) {
          var flag = true // 就是素数
          for (var i = j - 1; i >= 2; i--) {
              if (j % i == 0) {
                  flag = false
                  document.write(j + "不是素数" + "<br>")
                  break;
              }
          }
          if (flag == true) {
              document.write(j + "是素数" + "<br>")
          }
      }
  </script>

通过行为执行函数

即将函数绑定到事件上进行执行调用

例如

  
  <body>
      <!-- js事件中的鼠标单击事件 -->
      <button οnclick="fn()">点击按钮计算两个数的和</button>
  </body>
  </html>
  <script>
      /*
          需求1:现在有一个按钮,点击这个按钮会弹出一句话
          需求2:点击按钮 执行函数 函数中弹出一句话
      */
      var fn = function(){
          var a = Number(prompt('请输入第一个数'))
          var b = Number(prompt('请输入第二个数'))
          alert(a+b)
      }
  </script>

函数参数的概念

在函数创建以及调用的时候 后面都是有一个小括号,作用就是设置参数

函数参数的作用

参数可以传递函数需要的值:作用是封装函数 重复利用

函数中有两个参数

1.形参:形式上的参数 在创建函数的时候 函数名称后面的小括号就是形参

2.实参:实际上的参数 在调用函数的时候 函数名称后面小括号里的就是实参

注意

1.无论是形参还是实参 有多个参数的时候之间需要逗号隔开

2.在形参位置设置变量就表示在函数内部定义了变量但没有赋值

3.在调用函数的时候传入参数就相当于给形参中的变量做了赋值操作

形参和实参的应用:原则上数据类型和数量应该都是一样的

1.如果实参比形参多的时候:默认是从左边到右侧进行接收 多的参数对函数内部的代码没有影响

2.如果实参比形参少的时候:默认是从左侧到右侧进行接收 少的参数就会显示undefined

伪数组、类数组

当实参比形参多的时候 在函数内部默认有一个类数组 arguments 内置对象

知道了函数内部的内置对象的作用

1.可以通过内置对象获取传递进来的参数的个数 argument.length

2.可以通过内置对象获取传递进来参数的每个值 arguments.[下标]

函数的返回值

函数的返回值:函数运行得到一个结果

函数中的作用域:

函数是一个封闭的空间 函数内部的变量或者是计算的结果只能在函数内部使用

函数返回值的使用

1.函数内部的变量或者结果只能在函数内部使用

2.如果函数内部的变量或者结果提供给函数外面去使用 就需要一个关键字

return 变量/结果

3.在函数外面需要接收当前函数内部返回出来的结果值

4.函数内部使用了return可以将值返回去但是在外面接收不到 需要一个新的变量接收

5.return不仅仅可以返回值 还可以中断程序

注意:

​ 1.undefined: 表示变量未赋值 定义了但没有具体赋值

2.not defined:表示未定义 变量无中生有

预解析的概念

预解析/变量提升的解释

1.将变量的定义和函数的创建提到代码的最前面

2.其他大妈按照代码的书写顺序再去执行

程序报错之后,就不会继续往下去执行了

  
      fn()
      var fn = function(){
          console.log('你好2222') // undefined、你好2222
      }
      /*  
          预解析过程
          var fn // 变量
          fn() // 使用函数调用去执行变量 会报错 not a function
          fn = function(){
              console.log('你好2222')
          } 
      */

预解析的经典案例

  <script>
      fun()
      var fn = function () {
          console.log('我是 fn 函数')
      }
  ​
      function fun() {
          console.log('我是 fun 函数')
      }
      fn()
      fn = 100
      fn()
      /* 
          预解析过程
          var fn
          function fun() {
              console.log('我是 fun 函数') // 我是 fun 函数
          }
          fun()
          fn = function(){
              console.log('我是 fn 函数') // 我是 fn 函数
          }
          fn()
          fn =100
          fn() // 报错
      */
  </script>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值