JavaScript函数的命名方式

2023-10-29

函数的命名方式

JavaScript代码服用单位是函数,函数可以包含一段可执行代码,也可以接受调用者传入的参数。JavaScript定义函数主要有以下三种方式:

  1. 第一种方式:命名函数
<script>
  function 函数名(参数列表){//function声明函数的关键字
     要执行的语句块;
   }
   function myAge(age) {
            document.write('我的年龄是' + age)//我的年龄是19 
        }
        myAge(19)//函数不调用,不执行
</script>
  1. 第二种:匿名函数
<script>
    function (参数列表) {//同引用函数调用这个函数
        要执行的语句块
     }
     //匿名函数
      var a=function(age) {
          document.write('我的年龄是' + age)//我的年龄是19
       }
       a(19)
    </script>

命名函数和匿名函数不同,命名函数前后都可调用,匿名函数只能在函数后面调用才能出现

  1. 第三种:使用function类构建匿名函数
<script>
   new function(参数列表,函数执行体);//构造一个函数,参数列表和函数执行体都要用双引号括起来

   //构建匿名函数
   var a = new Function('name','age',"document.write('我的姓名:'+name+',我的年龄:'+age)")//我的姓名:小红,我的年龄:20
    a("小红",20)
</script>

**强调:**函数的形参不需要做类型声明,也不要加var,这是JavaScript属于弱类型语言的一种表现

大多数优秀的JavaScript框架都使用第二种“匿名函数”语法来定义函数,他的可读性最好,所以我们必须掌握使用它。

函数常用的特殊语句

  • 函数的返回值

return

JavaScript中的函数没有声明返回类型,当函数想要返回值的时候直接加上return“值”语句即可,假如不加就代表此函数没有任何返回值

 <script>
        //return
        function show() {
            return function(){
                alert("美女")//打印美女
            }
        }
        var f=show();
        f();
    </script>
  • 局部变量和局部函数

根据变量的定义范围不同,变量有全局变量局部变量之分。

函数外部直接定义的变量是全局变量,在函数中定义的变量成为局部变量,局部变量只能在函数内有效,如果全局变量和局部变量使用相同的变量,则局部变量将覆盖全局变量。

与局部变量对应的是局部函数,局部函数实在函数中定义的,全局变量可以在外部直接访问,内部变量只能在函数内部访问

注意:全局变量不能调用局部变量,局部变量可以调用内部变量

<script>
   //全局变量
    var name="美女"//全局变量
     function show(){
           var name="美女"
           var age=10;
           alert(name+"---"+age);//打印 美女---10
      }
      alert(name)//全局变量和局部变量使用相同的变量,则局部变量将覆盖全局变量。
      alert(age) //全局变量可以在外部直接访问,内部变量只能在函数内部访问
      show();

      //局部变量
        function f1() {
            var name ="张三";
            function f2() {
                var age = 30;
                alert(name);
            }
            //alert(age);//错误的  全局函数是不能访问局部函数内部的局部变量
            f2();
        }
        f1();

      //闭包:闭包是指有权访问另一个函数作用域中变量的函数
        function f3() {
            var n=1;
            function f4() {
                alert(n);
            }
            return f4;
        }
        var f=f3();
        f();
</script>

JavaScript的3种调用函数的方式:

  1. 直接调用函数:这种函数的调用是最常见、最普通的方式

对象.函数引用:
//当声明一个函数没有指明分配给哪个对象使用的时候,默认分配给的是window对象。

<scrit>
   function show(name,age) {
            alert("你好"+name+",今年"+age)
        }
        window.show('张三','20')  //对象.函数名   默认分配给的是window对象
</script>
  1. 以call方法调用函数:

函数引用.call(调用者,参数1,参数2,…)

<scrit>
    function show(name,age) {
            alert("你好,我是"+name+",今年"+age)
        }
        show.call(window,'张三','20');
</script>
  1. 以apply方法调用函数:

函数引用.apply(调用者,arguments)
//arguments相当于是数组,用来存放多个参数。和call调用方式类似

<scrit>
   function show(name,age) {
            alert("你好,我是"+name+",今年"+age)
        }
        show.apply(window,['张三','20']);
</script>

对方法2和方法3的一个扩展小案例

<script>
    function show(arr,func) {
            func.call(window,arr);
        }
        show([1,2,3,4],function (arr) {//用匿名函数传递
            for(i in arr){//遍历这个函数
                document.write(arr[i]+"<br/>")
            }
        })

        document.write("_______"+"<br>")

        function show(arr,func) {
            func.apply(window,[arr]);
        }
        show([1,2,3,4],function (arr) {//以数组形式传参
            for(i in arr){//遍历这个函数
                document.write(arr[i]+"<br/>")
            }
        })
        //第一种比较常用,但第二种和第三种比较灵活
</script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript函数的命名方式 的相关文章

随机推荐

  • 虚拟机连接本地数据库

    我们在运行虚拟机上面的项目时 可能要用到本机的数据库 在使用过程中会遇到数据库拒绝访问的情况 这是因为在安装本地数据库时没有启动远程连接 使用两种方法来解决这种问题 一 使用命令行模式 第一步 先切换到MySQL的安装路径下面的bin目录
  • 百分率的sql

    百分比的sql语句 方式一的百分比的sql 说明 这条sql是在一张表里面进行查询 将不同的级别的工程师的百分率查询出来 第一个sql select tmp job grade tmp tcount tmp1 t1count from se
  • 基于单片机的数字频率计设计

    数字频率计概述 数字频率计是计算机 通讯设备 音频视频等科研生产领域不可缺少的测量仪器 它是一种用十进制数字显示被测信号频率的数字测量仪器 它的基本功能是测量正弦信号 方波信号及其他各种单位时间内变化的物理量 在进行模拟 数字电路的设计 安
  • 【力扣】205.同构字符串

    同构字符串 同构字符串 1 题目描述 2 示例 3 代码 方式1 方式2 5 编译结果 同构字符串 1 题目描述 给定两个字符串 s 和 t 判断它们是否是同构的 如果 s 中的字符可以按某种映射关系替换得到 t 那么这两个字符串是同构的
  • 【蓝桥杯Python】2023.2.3-寻找2020

    题目描述 本题为填空题 只需要算出结果后 在代码中使用输出语句将所填结果输出即可 小蓝有一个数字矩阵 里面只包含数字 00 和 22 小蓝很喜欢 20202020 他想找 到这个数字矩阵中有多少个 20202020 小蓝只关注三种构成 20
  • 2023华为OD机试真题【施肥问题】

    题目描述 思路题解 首先需要计算每个果园的施肥时间 即果园面积除以施肥机能效 然后找到最小的施肥机能效 保证施肥任务能在规定时间内完成 如果施肥天数小于果园数量 则无法完成施肥任务 返回 1 如果施肥天数等于果园数量 则直接返回最大果园面积
  • 编译原理第七章笔记 -- 中间代码生成

    本文中内容整理西安交通大学软件学院吴晓军老师的ppt中 仅供学习使用 请勿转载或他用 参考教材 程序设计语言 编译原理 第3版 陈火旺等 国防工业出版社 这一章分数在35左右 两个大题 数组的引用四元式生成 控制语句当中布尔表达式的翻译 考
  • 运维必学

    欢迎关注 全栈工程师修炼指南 设为 星标 每天带你 基础入门 到 进阶实践 再到 放弃学习 专注 企业运维实践 网络安全 系统运维 应用开发 物联网实战 全栈文章 等知识分享 花开堪折直须折 莫待无花空折枝 作者 lt 安全开发运维 gt
  • VS2012编译安装VTK-5.10.1(支持Python)

    1 源码下载 到参考资料 1 下载vtk 5 10 1 zip和vtkdata 5 10 1 zip 2 源码解压 这里以D 盘为例进行说明 在D 盘中创建一个目录VTK 然后在其中创建4个目录 source build data和inst
  • mysql explain详解

    转自 http www blogjava net persister archive 2008 10 27 236813 html 在 explain的帮助下 您就知道什么时候该给表添加索引 以使用索引来查找记录从而让select 运行更快
  • Nginx反向代理与负载均衡

    文章目录 一 网关 代理与反向代理的关系 二 反向代理在系统架构中的应用场景 三 Nginx反向代理配置 1 不重定向配置 2 重定向配置 四 基于反向代理的负载均衡器 不支持https 五 负载均衡介绍 1 负载均衡策略 2 负载均衡调度
  • 三个java超级变态逻辑循环编程题

    1 有一根27厘米的细木杆 在第3厘米 7厘米 11厘米 17厘米 23厘米这五个位置上各有一只蚂蚁 木杆很细 不能同时通过一只蚂蚁 开始时 蚂蚁的头朝左还是朝右是任意的 它们只会朝前走或调头 但不会后退 当任意两只蚂蚁碰头时 两只蚂蚁会同
  • 【4】测试用例设计-判定表法

    判定表适用于有几个原因 导致几个结果的情况 实际测试中 如果输入条件较多 再加上各种输入与输出之间相互的作用关系 画出的因果图会比较复杂 容易使人混乱 为了避免这种情况 人们往往使用决策表法代替因果图法 决策表也称为 判定表 其实质就是一种
  • 各大公司薪资

    联合利华 MKT 9500 3000元安家费 普通职位 8KX12 联合利华销售代表 底薪加提成 总体一般 一般能拿到5K以上 宝洁 本8600 硕9700 博10500发14个月 11年数据 欧莱雅 MKT 6 6K X 13 11年数据
  • ajax工作原理 网页从输入url到呈现过程(TCP ,渲染引擎) 头像上传 下拉加载 节流 防抖 常见状态码

    Ajax工作原理 1 http网络传输协议 规定 前后端交互的 数据传输格式 协议 规定 前后端交互的数据传输格式 2 http协议组成两个部分 2 1前端 必须发送 请求报文格式 2 2后端 必须响应 响应报文格式 3 请求报文格式组成
  • VueX是什么?好处?何时使用?

    VueX相关 1 VueX是什么 2 使用VueX统一管理状态的好处 3 什么样的数据适合存储到Vuex中 1 VueX是什么 VueX是实现组件全局状态 数据 管理的一种机制 可以方便的实现组件之间数据的共享 如果没有VueX实现数据间的
  • 点云配准(四) Sparse Point Registration 算法浅析

    Sparse Point Registration SPR 是一篇2017年的点云配准算法 该算法的主要目的是对稀疏点云进行配准 并且取得了不错的成果和突破 本文一方面是对SPR配准算法模型进行了简单的原理解析以及附加代码实现 另一方面是对
  • c++ 的 multiple definition of `XXX‘

    文章目录 一 为什么会有多重定义问题 二 一些错误情景 1 头文件忘记加条件编译 2 类的静态变量在头文件定义 3 全局变量在 h文件定义 4 待补充 三 参考链接 一 为什么会有多重定义问题 声明 指出存储类型 并给出存储单元指定名称 定
  • C语言博客作业--嵌套循环

    一 PTA实验作业 题目1 7 1 查询水果价格 给定四种水果 分别是苹果 apple 梨 pear 桔子 orange 葡萄 grape 单价分别对应为3 00元 公斤 2 50元 公斤 4 10元 公斤 10 20元 公斤 首先在屏幕上
  • JavaScript函数的命名方式

    函数的命名方式 JavaScript代码服用单位是函数 函数可以包含一段可执行代码 也可以接受调用者传入的参数 JavaScript定义函数主要有以下三种方式 第一种方式 命名函数 第二种 匿名函数