JS 基础篇(四):JS中的函数

JavaScript基础篇:六、 函数基础 函数是 JavaScript 中的基本构建块,是一组为了完成特定任务而封装在一起的语句。函数可以接受输入参数,执行一系列操作,并返回结果。通过使用函数,可以实现代码的复用、模块化编程,使代码结构更加清晰和易于维护。通过本篇教程,深入学习了 JavaScript 中的函数基础,包括函数的定义与声明、参数、返回值、作用域和闭包等核心概念,并通过实际示例展示了它们的应用。函数是 JavaScript 编程的核心构建块,掌握函数的使用对于编写模块化、可维护的代码至关重要。 阅读详情

目录:

简单介绍下关于JS函数使用过程中的一些情况。

一、函数的参数

1、调用函数时没有提供足够的参数,缺少的参数将会被underfined替代。

function add(a,b){
    console.log("a:"+a); // a:1
    console.log("b:"+b);// b:underfined
    return a + b;
}
console.log(add(1)); //NaN 1和underfined相加为NaN

2、调用参数时,给予了超过要求个数的参数,多余的将会被忽略。

function add(a,b){
    console.log("a:"+a);
    console.log("b:"+b);
    return a + b;
}
console.log(add(2,3,8));//5  第三个参数“8”时多余的,被忽略了。

注:函数实际上是访问了函数体中一个名为 arguments 的内部对象,这个对象就如同一个类似于数组的对象一样,包括了所有被传入的参数。

二、函数的返回值

1、在函数中return 语句在返回一个值并结束函数。如果没有使用 return 语句,或者一个没有值的 return 语句,JavaScript 会返回 undefined。

function returnNone1(){

}
console.log(returnNone1());//underfined

function returnNone2(){
    return ;
}
console.log(returnNone2());//underfined
三、立即执行函数

1、问题描述:
通常我们在声明函数之后,通过在后面添加括号进行执行,如下代码所示:

var foo = function(){ /* code */}
foo();

那么这个是不是意味着我们在声明函数的时候直接在它后面添加括号,它就可以立即执行了,比如这样:

function(){ /* code */ }();

然而运行时会报错,因为在解析器解析全局的function或者function内部function关键字的时候,默认是认为function声明,而不是function表达式。

2、解决方案:
只要我们让解析器知道我们这个地方代表着是function表达式就行了。
如下所示:

//1、使用“()”
(function () { /* code */ } ()); // 推荐使用这个
(function () { /* code */ })(); // 但是这个也是可以用的

//2、由于括弧()和JS的&&,异或,逗号等操作符是在函数表达式和函数声明上消除歧义的,所以一旦解析器知道其中一个已经是表达式了,其它的也都默认为表达式了。
var i = function () { return 10; } ();
true && function () { /* code */ } ();
0, function () { /* code */ } ();

// 3、如果你不在意返回值,或者不怕难以阅读,你甚至可以在function前面加一元操作符号。
!function () { /* code */ } ();
~function () { /* code */ } ();
-function () { /* code */ } ();
+function () { /* code */ } ();

//4、使用new关键字,也可以用
new function () { /* code */ }
new function () { /* code */ } () // 如果需要传递参数,只需要加上括弧()
四、箭头函数

1、箭头函数定义
ES6标准新增了一种新的函数:Arrow Function(箭头函数)
定义为:

x => x * x

//相当于:

function (x) {
    return x * x;
}

2、箭头函数格式
箭头函数相当于匿名函数,并且简化了函数定义。
箭头函数有两种格式,一种像上面的,只包含一个表达式,连{ … }和return都省略掉了。
还有一种可以包含多条语句,这时候就不能省略{ … }和return:

x => {
    if (x > 0) {
        return x * x;
    }
    else {
        return - x * x;
    }
}

3、箭头函数参数
如果参数不是一个,就需要用括号()括起来:

// 两个参数:
(x, y) => x * x + y * y

// 无参数:
() => 3.14

// 可变参数:
(x, y, ...rest) => {
    var i, sum = x + y;
    for (i=0; i<rest.length; i++) {
        sum += rest[i];
    }
    return sum;
}

4、箭头函数返回值

//如果要返回一个对象,就要注意,如果是单表达式,这么写的话会报错:
// SyntaxError:
x => { foo: x }

//因为和函数体的{ ... }有语法冲突,所以要改为:
// ok:
x => ({ foo: x })

注意:箭头函数看上去是匿名函数的一种简写,但实际上,箭头函数和匿名函数有个明显的区别:箭头函数内部的this是词法作用域,由上下文确定。箭头函数完全修复了this的指向,this总是指向词法作用域。

JavaScript基础——4.JS函数 JS 函数声明需要以 function 关键字开头,后面跟上空格以及函数名,函数体用花括号括起来 格式如下:function 函数名(参数) {// 函数中的代码// 示例代码 函数声明// 函数表达式 类似于 python中的匿名函数。 阅读详情

相关推荐

JS学习篇(一) JavaScript语言特性

最近在学习Web开发,除了之前学习笔记提到的HTML和CSS,Web开发三件套的第三样就是JavaScript(即JS)。说到JavaScript,大家就算没接触过应该也会熟悉,只要稍微看过Web开发相关学习网站的目录或者课程表就知道这是一门必修的语言课了。 好,那么JavaScript是一门什么样的必修课,它是什么呢?为啥Web开发者是必修的!在写这篇学习笔记之前,我稍微查了一下,也把这...

豪阁的个人博客 1609

【Javascript修炼篇】JS中的函数式编程

【Javascript修炼篇】JS中的函数式编程,如何在javascript中使用函数式编程

代码说,代码让世界更美好。 1916

ArcGIS API for JavaScript之基础篇(四)

ArcGIS API for JavaScript之基础篇(四) 上一篇文章简单的介绍了可视化,需要的同学可以去公众号查找。这次的文章我改变了以前的写作方法,前几天是按照官网示例顺序写的,这次及以后就是根据一个例子不断的向下引申学习,这样学习更系统。开学第一天,大三下还那么多课,心累~。 这次我们介绍view.goTO方法,引申到Geometry类、Camera类、Graphic类以及如何定制更加...

weixin_41665391的博客 4435

【前端灵魂脚本语言JavaScript④】——JS中函数的使用

JavaScript函数类似于java中的方法。

Python全栈系列 2482

JavaScript入门一(JS基础知识)

文章目录一、JavaScript是什么二、网页组成2.读入数据总结 一、JavaScript是什么        JavaScript(简称“JS”)百度解释如下: 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。   &

qq_44872688的博客 3034

js基本语法第十讲:JavaScript中的函数

1. 函数定义和调用 2. 函数参数 3. 函数返回值:return 4. 立即执行函数 5. 函数的方法与隐含参数

weixin_43178406的博客 6169

JavaScript学习手册四:JS对象

JS对象引言A、对象的创建任务描述相关知识代码文件B、属性的增删改查任务描述相关知识代码文件C、属性的检测和枚举任务描述相关知识代码文件 引言 1、JavaScript是基于对象的语言,在JavaScript中,一切都可以被称为对象,包括字符串、数字、布尔型、HTML Element等。这些JavaScript中已有的对象称为内置对象,而用户自己定义的对象叫做自定义对象。自定义对象是数据和函数(也叫方法)的集合。 2、这里要特别提醒的是,JavaScript虽然也是一门基于对象的语言,但是它实现对象的

qq_45823118的博客 7695

Node.js特训专栏-基础篇:2. JavaScript核心知识在Node.js中的应用

函数调用在Node.js开发中无处不在。例如,在一个处理用户注册逻辑的模块中,可能会定义一个// 执行用户注册的具体逻辑,如验证用户名是否已存在、加密密码、写入数据库等console.log(`用户${// 执行用户注册的具体逻辑,如验证用户名是否已存在、加密密码、写入数据库等 console . log(` 用户 ${ username } 注册成功 `);} // 模拟接收到用户注册请求时调用函数 registerUser("JohnDoe" , "securePassword123");

爱分享的程序员 1583

JavaScript学习手册八:JS函数

JS函数1、用函数语句定义函数任务描述相关知识用函数语句定义代码文件2、用表达式定义函数任务描述相关知识用表达式定义代码文件3、函数的调用任务描述相关知识函数的调用代码文件4、未定义的实参任务描述相关知识用函数语句定义代码文件5、实参对象任务描述相关知识实参对象代码文件6、对象作为参数任务描述相关知识对象作为参数代码文件7、函数对象任务描述相关知识函数对象作为另一个函数的参数代码文件 1、用函数语句定义函数 任务描述 本关任务:用函数语句定义一个函数。 具体要求如下: 定义一个名字为mainJs()的函数

qq_45823118的博客 1万+

基于gem5模拟trace的cache模拟器的实现

在做计算机体系结构的时候,模拟器是一个重要且又有效的工具。其中gem5集成了gem和m5的优点,使用起来比较简单和方便。其中包括了se模式和fs模式,se模式是在gem5运行我们已经编译好的程序,可以获取cache,cpu状态等数据,fs模式下可以模拟操作系统,我们可以将我们自己修改的linux内核加载到哥们上运行。下面介绍了使用gem5的se模式,运行编译好的ARM可执行文件。获取访存的trac

gaoxiang的专栏 8891

(Touch™)搭建 Windows 开发环境

> OpenHaptics 开发包参考文档。

置心一处,便无事不办 1500

重新巩固JS(四)——JavaScript函数

文章目录1. 函数概述2. 函数定义3. 函数调用4. 函数参数4.1 默认值4.2 剩余参数5. 函数内部属性5.1 arguments对象5.2 this对象6. 函数是特殊对象6.1 函数的属性:length 和 name6.1.1 length属性6.1.2 name属性6.2 函数的方法: call、apply、bind6.2.1 call方法6.2.2 apply方法6.2.3 bin...

码飞_CC的博客 2183

高精度有源积分器设计:基于罗氏线圈的电流测量方案解析

在电力系统保护、工业自动化及高精度计量领域,电流的非接触式精确测量是核心需求。传统电流互感器存在磁芯饱和、频带受限等局限,难以应对现代电力电子设备产生的复杂波形。罗氏线圈作为一种空心电流传感器,凭借其宽频带、高线性度及无饱和风险的优势,成为理想解决方案。其工作原理基于法拉第电磁感应定律,输出信号与被测电流的导数成正比,因此必须通过积分运算恢复原始电流波形。积分器的精度、稳定性及动态响应直接决定了整个测量系统的性能上限。一个设计精良的有源积分器能有效解决直流漂移、相位误差及噪声放大等挑战,在继电器保护、断路器

weixin_30036289的博客 316

JavaScript第 14 篇,JavaScript函数中的arguments(JS函数中的arguments,函数默认参数arguments)

⭐在JavaScript中,arguments是一个类数组对象,它包含了函数调用时传入的所有参数。尽管它看起来像数组,但实际上并不是真正的数组,这意味着它不具有数组的所有方法如.push()、.pop()等。 JS的函数参数和其他的语言有些不同,它并不介意你传进来多少个参数,以及参数的数据类。即使你在定义函数时,只设置了两个形参,那么在调用这个函数时,你给他传递一个、两个,或者是其它四个、五个实参,它都能接收,之所以会这样是因为在函数参数内部是用一个数组来表示的,在函数体内是通过

AI Agent 全栈架构师(AI + GIS + Backend)& 数字芯片系统架构师(FPGA),NorthCity Smile的博客(NcSmile,博主域名:https://ncmile.blog.youkuaiyun.com) 5346

2022年全球市场微波等离子体CVD反应器总体规模、主要生产商、主要地区、产品和应用细分研究报告

据GIR (Global Info Research)调研,按收入计,2021年全球微波等离子体CVD反应器收入大约 百万美元,预计2028年达到 百万美元,2022至2028期间,年复合增长率CAGR为 %。

MARKETRESEARCH的博客 1137

基于深度学习的火焰检测系统:YOLOv8 + UI界面 + 数据集详解

YOLO(You Only Look Once)是一种端到端的目标检测算法,其最大优势在于将目标检测任务转化为一个回归问题,可以在一次前向传播中同时完成目标定位和分类。YOLOv8是YOLO系列中的最新版本,相比之前的版本,YOLOv8在精度和推理速度上都做了显著提升,特别是在小物体检测方面表现更加优秀。实时性:YOLOv8具有较高的推理速度,适用于实时火焰检测。高精度:相较于YOLOv7,YOLOv8在精度和小物体检测上有所改进。简单易用:YOLOv8的API简单直观,易于集成和使用。

YOLO 660

【JavaScript基础】你真正了解如今的Js数组吗,看这篇就(Go)够了

数组用过很多了,应该是太平常了。在循环♻️的时候,我这么说是不是不太专业呀(有点不太聪明的样子)! 那好,这样说? 在遍历数组时候,甚至想对数组有所操作的(是不是已有内置的方法了?),都可以考虑一下,先别自己写一大坨(我以前就是!!!),特别是在加入了es6语法之后。 熟悉数组的操作是一项基本工,在刷LeetCode的时候,因为对数组不熟悉而不能落实自己的思路,那简直就是,太可惜了!所以学数组,从现在起!!! 不过话说回来,你看了本文也不一定记得全部,一定要多用,多练,多总结!然后多出点BUG(这个

归子莫的博客 3175

华为OD机试双机位C卷-分披萨 (Py/Java/C/C++/Js/Go)

华为OD机试(机考)双机位C卷 【分披萨】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为od机试 - 分披萨。

qq_45776114的博客 1396

JavaScript【四】JavaScript中的函数

JavaScript【四】JavaScript中的函数

商务合作/软件定制/学习交流 867

使用 SAP 自家的 AI 工具 Joule 辅助 SAP Fiori 应用开发

SAP Joule 不请自答,解释说标记了接口的 UI Component,具备进行异步内容创建的能力,比如其通过 rootView 分配的视图,在运行时可以异步创建。目前 SAP Business Application Studio 里的 SAP Joule 支持下面这八种上下文,绝大部分都和 SAP UI5 开发相关,剩下的则是代码仓库和 SAP 帮助文档的搜索。SAP Joule 回答的大意是:我只负责回答 SAP UI5 开发相关的问题,不要和我扯其他有的没的。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1096

8-阿里云服务器 ECS配置R及Studio Server

步骤概览:(首先要明确自己的系统然后进行安装)

hx2024的博客 1572

【JavaScript】JavaScript基础篇

JavaScript为前端三剑客之一,主要实现和用户交互的动作,本篇文章对JavaScript的基础语法进行了总结,帮助大家进一步入门JavaScript

X_H学Java的博客 3496

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【JS】Javascript中的this到底是什么

JavaScript中的this是一个对于新手来说特别吓人并且不友好的概念。对于一个前端萌新来说,这个概念既模糊,又看不到它存在的意义。本文将解析JavaScript中的this,并且逐一分析他在每个常见场景中的意义和指向。

a1611107035的博客 3273

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【JS】基础篇之带你走进JavaScript的函数

1.什么是函数   函数(function)是一段预定义好,并且可以被反复使用的代码块。 2.函数的声明   1)普通函数 function 函数名(){ 语句块; }   2)带参函数 function 函数名(参数列表){ //可以由0或多个参数的名称来组成,多个参数的话中间用 , 隔开定义函数时的参数列表,都称为“形参” 语句块; ...

愿历尽千帆,仍保持最初的热爱,奔赴每一场山海,一如既往鲜活而明亮~ 645

ssm框架搭建

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

探索JavaScript中的构造函数,巩固你的JavaScript基础

本文将带你深入了解JavaScript中的构造函数,让你掌握如何使用构造函数来创建对象,以及如何通过原型链来实现对象的继承。我们将从基础概念入手,逐步深入,带你揭开构造函数的神秘面纱。🌟本文带你深入理解了JavaScript中的构造函数。你了解了构造函数的基础概念,如何使用构造函数。

你若盛开,清风自来 986
上一篇: JS 应用篇(三):var、let、const的区别
下一篇: JS 基础篇(五):JS严格模式
madman0621
博客等级 码龄11年 36粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值