JavaScript复习之函数

把MinerU集成到Dify 本文介绍了如何将本地部署的MinerU与Dify平台进行集成。首先需要确保Dify和MinerU在Docker环境中正常运行,并通过配置虚拟网络实现互联。然后详细说明了在Dify平台安装MinerU插件的步骤,包括从插件市场搜索安装、配置连接参数等关键操作。特别强调了要等待MinerU容器完全启动(healthy状态)后再进行Dify配置,否则会出现连接错误。通过简单的URL指向和API密钥设置,用户即可实现Dify平台与本地MinerU算力网络的对接,为后续的AI应用开发提供基础支持。 阅读详情

把一段相对独立的具有特定功能的代码块封装起来,形成一个独立实体,就是函数,起个名字(函数名),在后续开发中可以反复调用

函数的作用就是封装一段代码,将来可以重复使用

函数的声明及调用

声明
  • 关键字声明
function 函数名(){
  // 函数体
}
  • 表达式声明
var fn = function() {
  // 函数体
}
  • 特点:

    函数声明的时候,函数体并不会执行,只要当函数被调用的时候才会执行。
    一个函数一般都特定的用来干 一件 事情

调用
  • 调用函数的语法:
函数名();
  • 特点:

    函数体只有在调用的时候才会执行,调用需要()进行调用。
    可以调用多次(重复使用)

// 声明函数
function sayHi() {
  console.log("吃了没?");
}
// 调用函数
sayHi();

// 求1-100之间所有数的和
function getSum() {
  var sum = 0;
  for (var  i = 0; i < 100; i++) {
    sum += i;
  }
  console.log(sum);
}
// 一段代码可以多次调用
getSum();
getSum();
getSum();

参数

  • 为什么要有参数
function getSum() {
  var sum = 0;
  for (var i = 1; i <= 100; i++) {
    sum += i;
  }
  console.log();
}

// 虽然上面代码可以重复调用,但是只能计算1-100之间的值
// 如果想要计算n-m之间所有数的和,应该怎么办呢?
  • 语法:
// 函数内部是一个封闭的环境,可以通过参数的方式,把外部的值传递给函数内部
// 带参数的函数声明
function 函数名(形参1, 形参2, 形参...){
  // 函数体
}

// 带参数的函数调用
函数名(实参1, 实参2, 实参3);
  • 形参和实参
  1. 形式参数:在声明一个函数的时候,为了函数的功能更加灵活,有些值是固定不了的,对于这些固定不了的值。我们可以给函数设置参数。这个参数没有具体的值,仅仅起到一个占位置的作用,我们通常称之为形式参数,也叫形参。
  2. 实际参数:如果函数在声明时,设置了形参,那么在函数调用的时候就需要传入对应的参数,我们把传入的参数叫做实际参数,也叫实参。
function fn(a, b) {
  console.log(a + b);
}
var x = 5, y = 6;
fn(x,y); 
// x,y实参,有具体的值。
// 函数执行的时候会把x,y复制一份给函数内部的a和b,
// 函数内部的值是复制的新值,无法修改外部的x,y

JS 函数在调用时,允许传多个实参,就是实参个数可以比形参个数多;

函数的返回值

当函数执行完的时候,并不是所有时候都要把结果打印。我们期望函数给我一些反馈(比如计算的结果返回进行后续的运算),这个时候可以让函数返回一些东西。也就是返回值。函数通过return返回一个值

返回值语法:

//声明一个带返回值的函数
function 函数名(形参1, 形参2, 形参...){
  //函数体
  return 返回值;
}

//可以通过变量来接收这个返回值
var 变量 = 函数名(实参1, 实参2, 实参3);

返回值详解:

如果函数没有显示的使用 return语句 ,那么函数有默认的返回值:undefined
如果函数使用 return语句,那么跟再return后面的值,就成了函数的返回值
如果函数使用 return语句,但是return后面没有任何值,那么函数的返回值也是:undefined
函数使用return语句后,这个函数会在执行完 return 语句之后停止并立即退出,也就是说return后面的所有其他代码都不会再执行。

函数相关的其它事情

匿名函数与自调用函数

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

匿名函数如何使用:

将匿名函数赋值给一个变量,这样就可以通过变量进行调用

匿名函数如果没有任何变量来表示它,那么就不能直接调用来执行,因此可以通过匿名函数的自调用的方式来执行

(function () {
  alert(123);
})();

关于自执行函数(匿名函数自调用)的作用:防止全局变量污染。

函数本身也是值
function fn() {}
console.log(typeof fn);
  • 函数作为参数

因为函数也是一种值类型,可以把函数作为另一个函数的参数,在另一个函数中调用

function f1(f){
    f();
}
function f2(){
    console.log(2);
}
f1(f2); //2
  • 函数做为返回值

因为函数是一种类型,所以可以把函数可以作为返回值从函数内部返回,这种用法在后面很常见。

function fn(b) {
  var a = 10;
  return function () {
    alert(a+b);
  }
}
var f = fn(5);
f();  //15

函数作为值

重新认识 JS 的数据类型
null 与 Undefined

都表示空,没有等含义

历史原因:

JS在最初设计时只有5中数据类型(布尔 、字符串、浮点型、整形、对象),完全没有考虑空的情况,将空作为对象的一种;后来感觉不合理,但是由于代码量及兼容性问题,仅仅将NULL从概念上拿出来当做独立的数据类,但是语法层面依然是对象,对于其他情况的空,则新增了undefined数据类型,用于区分null;

在ES6第一版草案中,将null删掉了,但是在发布正式版式又加上了;

在JS中 null 与 undefined 出现情况的举例:

null :

对象不存在 document.getElementById(‘dsf’);

原型链的顶层是Object,获取Object的原型的值就是null

undefined :

变量声明没有赋值

函数调用没有返回值

函数调用需要实参,但是没有传递实参,函数内的形参是undefined

获取一个对象中不存在的属性

JavaScript 语言将函数看作一种 值,与其它值(数值、字符串、布尔值等等)地位相同。凡是可以使用值的地方,就能使用函数。比如,可以把函数赋值给变量和对象的属性,也可以当作参数传入其他函数,或者作为函数的结果返回。函数只是一个可以执行的值,此外并无特殊之处。

由于函数与其他数据类型地位平等,所以在 JavaScript 语言中又称函数为 第一等公民。

函数作为参数

function eat (callback) {
    setTimeout(function () {
        console.log('吃完了')
        callback()
    }, 1000)
}

eat(function () {
    console.log('去唱歌')
})

函数作为返回值

function f1(){
    var s = 1;
    function f2(){
        console.log(s);
    }
    return f2;
}
var f = f1();
f();// 1

JS中一切皆对象,函数也是对象。

基于鸿蒙 UniProton 的汽车电子系统开发指南 基于鸿蒙UniProton实时操作系统,提供了汽车电子系统开发的完整指南。通过统一的设计模式和开发规范,实现了高效、可靠的汽车电子系统开发。 阅读详情

相关推荐

AES128加密算法开发(含源码)

本文详解了AES128加密算法的原理与C语言实现。AES128是当前广泛使用的对称加密标准,采用128位密钥和10轮变换,具有高安全性和高效性。文章从算法背景、核心概念(混淆与扩散)入手,详细解析了4×4状态矩阵表示、4个核心变换(字节替换、行移位、列混合、轮密钥加)以及密钥扩展过程。特别针对汽车电子应用场景,如ECU通信加密、车钥匙认证等,说明了AES128在资源受限环境中的优势。通过分步图解和原理剖析,帮助开发者深入理解这一加密标准的技术细节与实现方法。

汽车电子软件开发笔记 2919

JavaScript中函数作用域相关易错题

var a = 9 function fn() { a = 0 return function (b) { return b + a++ } } var f = fn() console.log(f(5)) console.log(fn()(5)) console.log(f(5)) console.log(a) 输出:5 5 6 2 题解: 2. var a = 1 function fn(a) { console.log(a) var a = 2 fun...

青颜的天空的博客 858

PT32F030与MT6826S SPI通讯实战:从硬件连接到数据交互全流程解析

本文详细解析了PT32F030与MT6826S通过SPI通讯的全流程,包括硬件连接、电路设计、SPI外设初始化配置以及数据交互协议实现。通过实战案例和代码示例,帮助开发者快速掌握PT32F030与MT6826S的SPI通讯技术,实现精准的角度和速度数据采集。

weixin_29189373的博客 420

JS中typeof的用法

js是一门弱语言,它在声明变量时无需确定变量的类型,js在运行时会自动判断。那么如何判断一个变量的类型呢,js提供了typeof运算符,用来检测一个变量的类型。 1. typeof的语法 typeof是一个运算符,有2种使用方式:typeof(表达式)和typeof 变量名,第一种是对表达式做运算,第二种是对变量做运算。 2. typeof的返回值 typeof运算符的返回类型为字符串,值包括如下几种: 1. 'undefined' ...

xiaokanfuchen86的博客 452

【有啥问啥】智能座舱CPD技术:毫米波雷达如何守护儿童安全?

本文深入探讨了智能座舱中CPD(Child Presence Detection)技术如何通过毫米波雷达保障儿童安全。毫米波雷达凭借其穿透性检测、微动感知等优势,成为儿童遗留车内的有效解决方案。文章详细解析了技术原理、系统集成方案及安装指南,为智能座舱安全技术提供了实用参考。

weixin_29193259的博客 359

海思Hi3516CV610--SPI NAND Flash移植实战:从手册到驱动的完整适配

本文详细介绍了海思Hi3516CV610芯片上SPI NAND Flash的移植实战,包括从手册解读到驱动适配的完整流程。以GD5F2GM7UEYIGR Flash为例,重点讲解了关键参数确认、模式选择、时序配置以及U-Boot和Linux内核驱动的具体实现步骤,帮助开发者快速完成Flash移植工作。

weixin_29158413的博客 447

【JavaScript复习十六】函数,经验分享

其实前端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。这里再分享一个复习的路线:(以下体系的复习资料是我从各路大佬收集整理好的)《前端开发四大模块核心知识笔记》最后,说个题外话,我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

2401_83947105的博客 814

​​EMC设计实战:BCI(大电流注入)硬件设计规范

LIN接口:集成TVS管(如PESD5V0S1BL)与共模电感,耐压等级≥20V(8kV HBM)。输入滤波:10μF电解电容(100kHz截止)+ 0.1μF陶瓷电容(10MHz截止)。​:全频段(1MHz-400MHz)注入200mA电流,LIN通信误码率<0.01%。对敏感电路(如传感器)采用隔离电源(如ADuM5000),隔离电压≥3kVrms。​:连续波(CW)与调幅波(AM,调制深度80%)组合,覆盖全频段干扰场景。​:选择低频段(1-100MHz)感量≥100μH的绕线电感,抑制共模电流。

m0_50833886的博客 1940

【复习】javascript 函数

1.函数的三种定义方式 1.1.函数声明 function 函数名称() { // 函数要执行的代码(要做的事情) } 1.2.函数表达式 var fn = function() { // 函数执行代码 } 1.3.函数对象构造函数 var 变量名 = new Function('函数的执行代码'); 2.函数三要素 函数名称 函数参数 函数返回值 3.匿名函数 没有函数名称的函数成为匿名函数,匿名...

代码随想录 248

AI预测彩票,使用chatgpt和lstm神经网络(文末附源码)

AI预测彩票,使用chatgpt和lstm神经网络(文末有彩蛋)

淘淘小窝 1万+

YOLOv8改进 | 注意力篇 | YOLOv8引入EMAttention(EMA)注意力

具体来说,除了对全局信息进行编码以重新校准每个并行分支中的通道权重之外,还通过跨维度交互来进一步聚合两个并行分支的输出特征,以捕获像素级的成对关系。3. 跨空间学习:除了在每个并行子网络中建立局部的跨通道交互外,EMA模块还通过跨空间学习方法融合了两个并行子网络的输出特征图。到此本文的正式分享内容就结束了,在这里给大家推荐我的YOLOv8改进有效涨点专栏,后期我会根据各种最新的前沿顶会进行论文复现,也会对一些老的改进机制进行补充,如果大家觉得本文帮助到你了,订阅本专栏,关注后续更多的更新~

tsg6698的博客 896

JS倒计时器一只,顺便复习javascript时间相关函数

1 window.onload = function(){ 2 var uS = 604800; //后台提供 : 秒 3 var day=hour=minute=second=0, timer; 4 var demo = document.getElementById("demo"); 5 //秒数转为 日:时:分:秒 6 ...

aems6644的博客 126

Oracle EBS的帐套由“4C”构成,而华为MetaERP将其发展为“6C”

华为MetaERP从OracleEBS的"4C"架构升级为"6C",实现核算理念革新。核心突破在于将会计科目、核算维度和核算单元解耦,形成"科目表+维度库"的灵活架构。新架构优势显著:1)科目回归会计本质,管理维度独立扩展;2)支持无限维度的精细化核算;3)实现数据权限隔离和内部交易自动化;4)采用元数据驱动设计,为AI应用奠定基础。这一平台化架构解决了大型企业在全球化、多元化发展中的核算难题,相比传统架构具有更强的灵活性和扩展性。

金牌架构师 204

JS-复习回调构造函数对象

JS-复习回调构造函数对象 本阶段学习内容: less:css预处理语言 jquery:js的类库 git:项目版本管理工具 bootstrap:ui库 webpack:打包工具 gulp:打包工具 http:协议 ajax:可以实现前后端的通讯 session,cookie,storage:对数据进行缓存处理的,实现前后端的通讯。安全 es6: mongodb: node: 一 回调函数 1 基础部分 将一个函数作为参数传递给另外一个函数,并得到执行,那么称该函数为回调函数。作用是解决异步行为。 f

weixin_57218747的博客 438

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【JavaScript复习十六】函数

利用函数关键字自定义函数(命名函数)使用函数声明来创建一个函数(也就是function关键字)。语法function函数名([形参1,形参2...形参N]){//备注语法中的中括号,表示“可选”语句...}函数表达式(匿名函数)使用函数表达式来创建一个函数。语法var变量名=function([形参1,形参2...形参N]){语句....}使用构造函数newFunction()...

weixin_62542181的博客 668

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【JS】JS基础复习笔记——函数基础

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、函数定义与调用1、定义函数2、调用函数3、arguments4、rest总结 前言 本文用于自行复习前端基础知识,均来源于现有教程等材料的整理,如有纰漏敬请包涵!第一部分:函数。 一、函数定义与调用 1、定义函数 在Javascript中有两种定义函数的方式: 第一种:将函数定义为函数对象,函数名可以视为指向函数的变量。 function abs(x){ if(x>=0){ return x;}.

weixin_43296855的博客 606

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

js复习:第1章JavaScript快速入门,第2章基本语法,第3章数组,第4章函数

第1章JavaScript快速入门 1.JavaScript的特点 (1)JavaScript是脚本语言 (2)JavaScript可以跨平台 (3)JavaScript支持面向对象 2.JavaScript3种常用的输出语句 (1)alert() (2)console.log() (3)document.write() 3.JavaScript3种引入方式 (1)嵌入式 <script> JavaScript语句; </script> <scrip

WHT869706733的博客 987

JavaScript函数复习

{${${${${${${${● 一般情况下,我们可能只需要只要你还有多少年退休,如果退休了,就不需要展现多少年${${${为什么函数内部的console.log不输出出现呢,因为return会直接返回结果,不会执行下面的代码,所以我们要讲console.log移动上去${${${

分享学习网络的点点滴滴 182

JavaScript复习笔记 (二)函数

一、定义 function abs(x){} 如果没有return语句,函数执行完毕后也会返回结果,只是结果为undefined var abs = function (x) {}; 注意第二种方式按照完整语法需要在函数体末尾加一个" ; ",表示赋值语句结束 由于JavaScript的函数也是一个对象 上述定义的abs()函数实际上是一个函数对象,而函数名abs可以视为指向该函数的变量 (1,2完全等价) 调用:JavaScript允许传入任意个参数而不影响调用 二、 关键字arguments 关键

努力努力再努力w 515

复习总结——JS变量与函数

变量的提升,函数声明

m0_61698324的博客 1126

JS复习7:函数

JS复习7:函数 一、函数的声明 // 函数使用分为两步: 声明函数 和 调用函数 // 1. 声明函数 // function 函数名() { // // 函数体 // } function sayHi() { console.log('hi~~'); } // (1) function 声明函数的关键字 全部小写 // (2) 函数是做某件事情,函数名一般是动词 sayHi // (3) 函数不调用自己不执行 // 2. 调用函数 // 函数名(); sayHi(); // 调用函数

好汤圆的博客 193

js复习--函数

[](() 注意:如果一个函数作为一个对象的属性报错,那么我们称相和歌函数为对象的方法,调用这个函数就是调用对象的方式(method) 函数(方法) 8 枚举对象中的属性 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------

m0_70647124的博客 189

javascript函数复习

1.定义函数function abs(x){ if (x>=0){ return x; }else{ return -x; } }如果没有return语句,函数执行完毕后也会返回结果,只是结果为undefined由于javascript的函数也是一个对象,abs()函数实际上是一个函数对象,而函数名abs可以视为指向该函数的变量第二种定义函数的方式var abs=function(x){ if

遇见更好的自己 499

JavaScript进阶函数的复习

函数提升是一个有趣的现象,它允许我们在函数声明之前调用它们。这在编写代码时提供了更大的灵活性,尤其是在处理回调函数或者异步编程中非常有用。函数提升只发生在相同作用域的函数之间,而且函数表达式不具有提升现象。闭包的作用是可以在函数外部访问函数内部的局部变量。这是一个内置的伪数组,它包含了对函数所有参数的引用。箭头函数是ES6中引入的一个新特性,它可以让我们以更简洁的方式书写函数。函数可以作为其他函数的参数和返回值。高阶函数是指接受其他函数作为参数或将函数作为返回值的函数。在JavaScript中,函数的。

studyinstall的博客 436

js基础复习之对象、函数

1.对象(Object) - 对象是JS中的引用数据类型 - 对象是一种复合数据类型,在对象中可以保存多个不同数据类型的属性 - 使用typeof检查一个对象时,会返回object - 创建对象 - 方式一: - var obj = new Object(); - 方式二: - var obj = {}; - 向对象中添加属性 - 语法: 对象.属性名 = 属性值; 对象["属性名"] ...

所学所思 624

JavaScript复习之JavaScript常用函数

今日目录        1、JavaScript全局函数        2、JavaScript window对象常用方法及事件一、JavaScript全局函数全局函数不属于任何一个内置对象。JS 包含以下 7 个全局函数,用于一些常用的功能:escape(),eval(),isNan(),isFinite(),parseFloat(),parseInt(),unescape();Eval()方法...

Java学习之乐的博客 402
上一篇: JavaScript复习之特殊的对象-数组
下一篇: JavaScript复习之作用域与运行原理
HansMa
博客等级 码龄12年 24粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值