函数(封装)

一、函数的基本使用

1.函数: 是 可以被重复使用的 代码块(代码复用)
2.作用: 函数可以 把具有相同或相似逻辑的代码“包裹”起来,这么做的优势是有利于 代码复用
3.函数的基本使用
(1)定义函数: 利用关键字 function 定义函数 (声明函数,函数名常使用动词),遵循小驼峰命名法。(变量名和函数名也不能重复,会有冲突)
(2)调用函数:定义一个函数 并不会自动执行 它,需要调用函数。函数可以 多次调用 ,每次调用 都会 重新执行 函数体里面代码。( alert() parseInt() 名字后面跟小括 号的本质都是函数的调用
(3)说明: 函数参数,如果有多个则用 逗号 分隔,用于 接受 传递过来的 数据 ;return 关键字可以 把结果返回给调用者
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>函数求和</title>
</head>

<body>
    <script>
        // 案例1:计算两数之和
        function sum() {
            let x = 10
            let y = 25
            console.log(x + y)
        }
        sum()

        // 案例2:求1-100之间累加的和
        function sum2() {
            let sum2 = 0
            for(let i = 1 ; i <= 100 ; i++){
                sum2 += i
            }
            console.log(sum2)
        }
        sum2()

        // 以后再用可以直接调用sum
    </script>
</body>

</html>

效果展示:

 二、函数的参数

1.形参: 声明函数 时小括号里的 叫形参 (形式上的参数)
2.实参: 调用函数 时小括号里的 叫实参 (实际上的参数)
3.执行过程: 会把 实参 的数据 传递给形参 ,从而提供给函数内部使用,我们可以把形参理解为变量
我们曾经使用过的 alert('打印') parseInt('11px') Number('11') 本质上都是函数调用的传参
4. 在Javascript中 实参的个数和形参的个数可以不一致; 如果形参过多 会自动填上undefined,返回NaN;如果实参过多,那么多余的实参会被忽略;但是在 开发中要尽量保持形参和实参个数一致
5.函数如果没有参数和返回值,那就只是一个包裹代码的工具,不灵活,很鸡肋。参数相当于榨汁机的入口,可以自行决定投递什么食材进去,返回值相当于榨汁机的出口,处理完后给出结果到调用者,等于流出汁水,榨汁成功。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>函数的整体认知</title>
</head>

<body>
    <script>
        // 1.函数
        function sum(x, y) {
            // 返回结果
            return x + y

        }
        // 2.给两个值(10,20);10给了x;20给了y
        console.log(sum(10, 20))
        // 4.输出

        // 再试一次
        console.log(sum(30 , 40))

        // 求1-100之间的累加和
        function sum2(x , y){
            let sum2 = 0
            for(let i = x ; i <= y ; i++){
                sum2 += i
            }
            return sum2
        }
        console.log(sum2(1 , 100))

    </script>

</body>

</html>

三、逻辑中断

1.逻辑中断: 存在于 逻辑 运算符 && || 中,左边如果满足一定条件会 中断 代码执行,也称为逻辑短路
2.解释:
(1)false && anything // 逻辑与左边false则中断 ,如果左边为true,则返回右边代码的值
(2)true || anything // 逻辑或左边true则中断 ,如果左边为false,则返回右边代码的值

四、默认参数

1.默认参数:可以给 形参设置默认值
2.默认参数和逻辑中断使用场景区别:
默认参数主要处理 函数形参 (处理参数要比逻辑中断更简单)
逻辑中断 除了参数 还可以处理更多的需求
以前因为兼容性,会使用短路或的方法来对函数设置默认值,现在可以直接使用了

案例展示: 用户给不同数组(里面是数字型数据),求数组和并且返回
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>求和</title>
    <!-- 用户给不同数组(里面是数字型数据),求数组和并且返回 -->
</head>
<body>
    <script>
        function sumArray(array) {
            // sumArry 是函数名,以后可以直接调用
            // array是形参,可以理解为函数内部定义的变量,传参这个动作就是给形参赋值
            // 这一段求和功能进行封装
            let sum = 0
            for (let i = 0 ; i < array.length ; i++){
                sum += array[i]
            }
            return sum
        }

        let arr1 = [10 , 20 , 30 , 40]
        let array = [11 , 11 , 11 , 11 , 11 ]

        document.write(sumArray(arr1))
        document.write('<br>')
        document.write(sumArray(array))    
        
        </script>
    
</body>
</html>

效果展示:

五、函数的返回值

1.返回值:把处理结果返回给 调用者
2.其实我们前面已经接触了很多的函数具备返回值:比如  prompt  ;比如  parseInt  ;只是这些函数是JS底层内置的.我们直接就可以使用.当然有些函数,则没有返回值,比如   alert  ;所以要根据 需求 ,来设定需不需要返回值.
3.函数返回值的注意事项:
(1) return会立即 结束 当前 函数 ,所以后面代码不会再被执行
(2) return 关键字 和被返回的表达式之间 不允许使用换行符 否则内部执行相当于会自动补充分号
(3)函数可以没有 return,这种情况函数默认返回值为 undefined

案例分享:

判断数组是否存在某个元素,如果有则返回true,否则返回 false

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 如果找到该元素(第一个元素即可),则返回该元素的索引号,找不到该元素则返回-1 -->
</head>

<body>
    <script>
        function findIndex(name , arr) {
            // 分析思路
            // 1.定义一个变量,默认值为-1 :假设法
            let index = -1
            // 2.遍历数组
            for(let i = 0 ; i < arr.length ; i++){
                // 如果找到该元素,返回该元素的索引号
                if (name === arr[i]){
                    index = i
                    break
                }
            }
            return index
        }

        let arr1 = ['榴莲', '芒果', '砂糖橘', '菠萝蜜', '沃柑']
        console.log(findIndex('菠萝蜜', arr1))
        console.log(findIndex('圣女果', arr1))
    </script>
</body>

</html>

效果展示:

六、作用域

1.作用域( scope): 变量或者值在代码中 可用性的范围
2.作用: 作用域的使用提高了程序逻辑的局部性,增强了程序的可靠性,减少了名字冲突。
3.分类:
(1)全局作用域: 作用于所有代码执行的环 境(整个 script 标签 内部) 或者一个独立的 js 文件。
全局变量在任何区域都 可以访问和修改
(2)局部作用域: 1. 函数作用域 。作用于 函数内 的代码环境。2. 块级作用域{ } 大括号内部。
局部变量只能在当前局部内部访问和修改
4.注意:
如果函数内部,变量没有声明直接赋值,也当 全局变量 看,但 是强烈不推荐 。函数内部的 形参 可以看做是 局部变量
5.变量的访问原则

在不同作用域下,可能存在变量命名冲突的情况,到底该执行谁呢?

访问原则:在能够访问到的情况下先局部, 局部没有再找全局,总结: 就近原则

七、匿名函数

1.具名函数 :有名字的函数

声明:function sum() {}

调用:fn()
2. 匿名函数 : 没有名字 的函数
function () {}
3. 匿名函数两种使用方式:
(1)函数表达式     
(2)立即执行函数

 

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Halcon 是一种图像处理软件,它提供了许多封装函数来帮助用户完成图像处理任务。这些封装函数包括图像预处理、特征提取、图像分析、图像识别等功能。它们是基于 Halcon 图像处理引擎构建的,可以帮助用户快速高效地完成图像处理任务。 ### 回答2: Halcon封装函数是指将Halocn的功能和算法进行封装,以方便用户使用和调用。封装函数的设计主要有以下几个步骤: 1. 根据功能需求和算法特点,确定封装函数的输入和输出参数。输入参数可以包括图像数据、图像处理参数等,输出参数可以是处理结果、处理后的图像等。 2. 使用Halcon提供的函数和算法,实现封装函数的具体功能。在实现过程中,可以根据需要调用不同的Halcon函数,进行图像处理、特征提取、对象识别等操作。 3. 添加适当的错误处理和异常处理机制,以提高封装函数的稳定性和健壮性。在函数运行过程中,可以通过检查返回值或抛出异常来处理潜在的错误情况,避免程序异常终止。 4. 根据需要,为封装函数添加注释、说明文档等,提供给用户使用时的参考。注释和说明文档应该清晰明了地描述封装函数的功能、输入输出参数的含义和用法,以便用户正确调用和理解。 5. 进行封装函数的测试和验证,确保其功能和性能符合预期。可以通过输入一些典型的测试数据,检查封装函数的输出是否正确,并根据实际场景和要求进行性能测试,以确定封装函数的效率和响应速度。 通过封装函数,用户可以更加方便地调用Halcon的功能和算法,提高开发效率和代码的可读性。同时,封装函数还可以隐藏底层的实现细节,降低用户学习和使用Halcon的难度,使得开发者能更专注于自己的应用领域。 ### 回答3: Halcon是一种用于机器视觉应用开发的强大的软件库。它提供了丰富的图像处理和分析功能,可以用于实现各种视觉算法和任务。 Halcon封装函数是指将Halcon库中的函数进行封装,以提供更简洁、易用的接口,方便开发者快速使用Halcon功能。通过封装函数开发者可以直接调用这些函数,无需了解函数底层的具体实现细节。 封装函数的好处有以下几点: 1. 简化调用:封装函数可以将复杂的功能封装成一个简单的函数,减少开发者的工作量和学习成本。 2. 提高可读性:通过合理的封装,可以使函数的调用更加易读、易懂,方便团队合作和代码维护。 3. 隐藏底层实现:封装函数可以将底层实现细节进行隐藏,只暴露对外的功能接口,保护知识产权和代码安全性。 4. 增强可移植性:封装函数可以屏蔽底层的细节,使代码在不同平台和环境下都能够运行,提供可移植性。 封装函数的实现通常是通过编写自定义的函数或类来完成的。在封装函数时,可以考虑参数的合理性、错误处理、代码规范等因素,以提供一个高质量、稳定可靠的封装函数。 总之,Halcon封装函数开发者提供了一种简化、高效的方式来使用Halcon库的功能,使机器视觉应用的开发更加便捷和灵活。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值