当前位置: 首页 > news >正文

学习函数知识

学习函数是编程中的重要基础,以下是关于函数的详细知识点:

1. 函数的定义

  • 函数是一组执行特定任务的代码块,可以重复使用。
  • 在 JavaScript 中,可以通过以下方式定义函数:
    • 函数声明

      function functionName(parameters) {// 函数体
      }
      
    • 函数表达式
       

      const functionName = (parameters) => {// 函数体
      };
      
    • 箭头函数(ES6 引入):
       

      const functionName = (parameters) => {// 函数体
      };
      

2. 参数与参数默认值

  • 参数:函数可以接受输入,当调用函数时,可以传递参数。
    function greet(name = 'Guest') {console.log(`Hello, ${name}!`);
    }
    

3. 返回值 

  • 函数可以返回一个值,使用 return 语句。
    function add(a, b) {return a + b;
    }
    

4. 作用域

  • 局部作用域:在函数内部定义的变量,外部无法访问。
  • 全局作用域:在函数外部定义的变量,任何地方都可以访问。

5. 闭包

  • 闭包是函数与其词法环境的组合,即使外部函数已经执行完毕,内部函数仍然可以访问外部函数的变量。
function outer() {let count = 0;return function inner() {count++;return count;};
}
const counter = outer();
console.log(counter()); // 1
console.log(counter()); // 2

6. 高阶函数

  • 高阶函数是指接受函数作为参数或返回函数的函数。
function createMultiplier(multiplier) {return function(x) {return x * multiplier;};
}
const double = createMultiplier(2);
console.log(double(5)); // 10

7. 回调函数

  • 回调函数是被作为参数传递给另一个函数的函数,通常用于异步操作。
function fetchData(callback) {setTimeout(() => {callback("Data received");}, 1000);
}
fetchData((data) => {console.log(data); // "Data received"
});

8. IIFE(立即调用的函数表达式)

  • IIFE 是在定义后立即执行的函数,常用于创建局部作用域。
    (function() {console.log("This is an IIFE");
    })();
    

9. 函数的重载

  • JavaScript 不支持函数重载,但可以通过检查参数数量和类型实现类似的效果。
function example() {if (arguments.length === 1) {return arguments[0];} else if (arguments.length === 2) {return arguments[0] + arguments[1];}
}

10. 函数的上下文(this)

  • this 的值依赖于函数的调用方式。
  • 在方法中,this 指向调用该方法的对象。
  • 在普通函数中,this 在严格模式下是 undefined,在非严格模式下是全局对象。

11. 总结

  • 理解函数的概念、定义、参数、返回值、作用域等基本知识点是学习编程的重要基础。
  • 学习如何使用高阶函数、回调函数、闭包等高级主题,可以帮助你写出更灵活和强大的代码。

12. 练习

  • 编写一些简单的函数来熟悉这些概念,比如计算器函数、字符串处理函数等。
  • 尝试使用回调和高阶函数解决一些实际问题,如数组的排序、过滤等。

相关文章:

学习函数知识

学习函数是编程中的重要基础,以下是关于函数的详细知识点: 1. 函数的定义 函数是一组执行特定任务的代码块,可以重复使用。在 JavaScript 中,可以通过以下方式定义函数: 函数声明: function functionNam…...

案例-表白墙简单实现

文章目录 效果展示初始画面提交内容后画面&#xff08;按键按下&#xff09; 代码区 效果展示 初始画面 提交内容后画面&#xff08;按键按下&#xff09; 代码区 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">…...

和鲸科技创始人范向伟:拐点即将来临,AI产业当前的三个瓶颈

在科技迅猛发展的时代&#xff0c;人工智能&#xff08;AI&#xff09;无疑已经成为引领新一轮产业革命的核心动力之一。全球企业纷纷拥抱AI技术&#xff0c;试图借助其变革力量在竞争中突围&#xff0c;然而业界对AI产业化的拐点何时来临却众说纷纭。毕竟AI技术从实验室到商业…...

基于函数计算FC 部署 ComfyUI实现AI生图 的优势

基于函数计算FC 部署 ComfyUI实现AI生图 的优势 部署ComfyUI实现AI生图使用函数计算FC 一键部署ComfyUI 绘画平台的优势有哪些&#xff1f; 在文章开始之前&#xff0c;先来看一下基于函数计算FC 部署 ComfyUI实现AI生图 的大概步骤&#xff0c;整个基础部署操作比较简单。即便…...

瑞萨IDE:CS+ for CC编译过程中执行脚本文件

最近发现使用CS for CC IDE发现一个很有意思的功能。编译工程过程中&#xff0c;IDE自动执行Python脚本和批处理脚本&#xff0c;极大地提高开发效率。 编写好脚本文件后&#xff0c;在IDE中选择CC-RH&#xff08;Build Tool&#xff09;->Common Options->Others。 Co…...

在 CentOS 上安装 Docker 的步骤

在 CentOS 上安装 Docker 的步骤如下&#xff1a; 步骤 1&#xff1a;更新系统包 sudo yum update -y步骤 2&#xff1a;安装依赖包 确保安装了 yum-utils、device-mapper-persistent-data 和 lvm2&#xff0c;这些是 Docker 运行所需的依赖项&#xff1a; sudo yum instal…...

【C#生态园】探索地理信息系统软件套件与库:功能、API和应用

探索地理信息系统&#xff1a;软件套件与库详解 前言 地理信息系统&#xff08;GIS&#xff09;是当今世界上广泛使用的技术之一&#xff0c;它以空间数据为基础&#xff0c;能够提供丰富的地理信息分析和可视化功能。在GIS领域&#xff0c;有许多优秀的软件套件和库&#xf…...

Jupyter的使用分享

文章目录 碎碎念安装方法1.安装Anaconda方法2.通过库的安装方式 启动使用教程1.指定目录打开2.启动后的简单使用 小结 碎碎念 前情提示 之前与许多小伙伴交流的时候&#xff0c;发现大家对于pycharm更容易上手&#xff08;可能是比较好设置中文的原因&#xff09;&#xff0c;在…...

24龙信比赛复现

案情简介&#xff1a; 近期&#xff0c;某公安机关接到受害人报案&#xff1a;通过微信添加认识一位相亲中介客服&#xff0c;客服邀约其与“相亲”对象进行选妃&#xff0c;受害人上钩后&#xff0c;整个过程被涉案团伙录音录像&#xff0c;同时&#xff0c;该客服以有更多的…...

PHP反射机制

HP反射机制是PHP语言中的一个强大特性&#xff0c;它允许程序在运行时检查、获取和操作类、方法、属性等元素的信息。这一机制极大地提高了PHP代码的灵活性和可维护性&#xff0c;使得开发者能够在不修改原有代码结构的情况下&#xff0c;动态地了解并操作代码。以下是对PHP反射…...

使用阿里云试用资源快速部署web应用-dofaker为例

本文介绍使用阿里云的试用资源部署dofaker的方法&#xff0c;本教程主要作学习在阿里云部署web应用之用&#xff0c;部署好应用之后&#xff0c;可以在任何地点通过公网ip访问web应用。 一、创建云主机 登录阿里云账户之后&#xff0c;点击控制台&#xff1a; 点击云服务器EC…...

需求11——解决字段无法清空的两个小bug

目录 背景 第一个小bug——问题阐述 第一个小bug——解决方案 第二个小bug——问题阐述 第二个小bug——解决方案 总结 背景 已经写了一个上午的文章了&#xff0c;写完这篇就可以去吃饭了。这也是这几个月的我写的最后一个小bug文章&#xff0c;把这篇文章写完就搞定了…...

mysql学习教程,从入门到精通,SQL 创建索引(CREATE INDEX 语句)(35)

1、SQL 创建索引(CREATE INDEX 语句) 在SQL中&#xff0c;创建索引&#xff08;CREATE INDEX&#xff09;是一种用于提高数据库查询性能的方法。索引类似于书的目录&#xff0c;通过它可以更快地定位到表中的特定行。以下是一个创建索引的示例&#xff0c;以及对其各部分的解释…...

Pikachu-Cross-Site Scripting-DOM型xss_x

查看代码&#xff0c;输入的内容&#xff0c;通过get请求方式&#xff0c;用text 参数带过去&#xff1b; 获取text内容&#xff0c;赋值给xss 然后拼接到 dom 里&#xff1b;构造payload的关键语句&#xff1a; <a href"xss">就让往事都随风,都随风吧</a&…...

Pikachu-Cross-Site Scripting-xss之htmlspecialchars

首先输入各种字符 查看页面元素&#xff0c;可以看到这里对一些符号做了转换&#xff0c;但是 单引号等几个符号没处理&#xff1b; 从代码上看&#xff1b;使用单引号做闭合&#xff1b; 构造payload a onclickalert(11) 提交&#xff0c;得到xss攻击...

CSS基础中padding详解

文章目录 CSS基础中padding详解一、引言二、Padding基础1、Padding属性1.1、Padding的四个方向 2、Padding的值类型3、代码示例 三、Padding简写方法1、简写顺序2、简写规则3、代码示例 四、Padding对元素大小的影响1、解决方案1.1、Box-sizing属性1.2、计算实际宽度 五、总结 …...

OpenGL笔记十九之相机系统

OpenGL笔记十九之相机系统 —— 2024-10-02 晚上 bilibili赵新政老师的教程看后笔记 code review! 文章目录 OpenGL笔记十九之相机系统1.运行1.1.游戏相机1.2.轨迹球相机 2.游戏相机与轨迹球相机切换3.博主笔记本要运行需要更改的文件更改1:28_OpenGL_CameraSystem/applicat…...

P-Tuning v2:一种普遍有效的提示调整方法

人工智能咨询培训老师叶梓 转载标明出处 预训练语言模型通过微调&#xff08;fine-tuning&#xff09;来适应特定任务虽然效果显著&#xff0c;但存在训练成本高、参数存储量大等问题。为了解决这些问题&#xff0c;清华大学的研究者们提出了一种名为P-Tuning v2的提示调整&am…...

微信小程序启动不起来,报错凡是以~/包名/*.js路径的文件,都找不到,试过网上一切方法,最终居然这么解决的,【避坑】命运的齿轮开始转动

app.json "resolveAlias": {"~/*": "/*"},文件代码也没有问题&#xff0c;网上的方法试过来了&#xff0c;大模型AI也问过遍&#xff0c;熬夜到凌晨2点半&#xff0c;最不可思议的是居然是因为微信开发者工具版本的问题&#xff0c;我真的是笑死…...

C#串口温度读取

背景&#xff1a;每天学点&#xff0c;坚持 要安装好虚拟串口和modbus poll&#xff0c;方便调试&#xff08;相关资源在文末&#xff0c;也可以私信找我要&#xff09; 传感器部分使用的是达林科技的DL11B-MC-D1&#xff0c;当时42软妹币买的&#xff08;官网上面有这个传感…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能&#xff0c;本节首先介绍如何通过 Docker 快速体验 TDengine&#xff0c;然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker&#xff0c;请使用 安装包的方式快…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面&#xff0c;开源代码 作为一个电子罗盘模块&#xff0c;我们可以通过I2C从中获取偏航角yaw&#xff0c;相对于六轴陀螺仪的yaw&#xff0c;qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

基于服务器使用 apt 安装、配置 Nginx

&#x1f9fe; 一、查看可安装的 Nginx 版本 首先&#xff0c;你可以运行以下命令查看可用版本&#xff1a; apt-cache madison nginx-core输出示例&#xff1a; nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章&#xff0c;二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑&#xff1a; &#x1f504; 一、起源与初创期&#xff1a;Swagger的诞生&#xff08;2010-2014&#xff09; 核心…...