详解JavaScript的函数

详解 JavaScript 的函数

e2c6aa3ef7f429

函数的语法格式

创建函数/函数声明/函数定义

function 函数名(形参列表) { 函数体   return 返回值; // return 语句可省略
} 

函数调用

函数名(实参列表) // 不考虑返回值
返回值 = 函数名(实参列表) // 考虑返回值

示例代码

//定义的没有参数列表,也没有返回值的一个函数
function hello() {console.log("hello")
}
//定义一个有参数列表,有返回值的一个函数
function hello2(num, name) {console.log(num + " hello " + name)return 1;
}
//hello()
let a = helllo()
console.log(typeof(a))
let b = hello2(1, "小明")
console.log(typeof(b))

注意:

  • let a = helllo() // 该函数没有返回对应的数据,此时a的类型是undefined
  • 在JS中,对一个函数不用去声明它的返回类型,它的返回值类型取决于它return的数据类型(这一点恰巧验证了JS是一个动态语言的特性)

运行结果

image-20240302210841755



函数的参数个数

在JS中调用一个函数的时候,它的实参和形参之间的个数可以不一样
注:实际开发一般要求形参和实参个数要匹配

如果实参个数比形参个数少, 则此时多出来的形参值为 undefined;
如果实参个数比形参个数多, 则多出的参数不参与函数运算;

示例代码

function hello2(num, name) {console.log(num + " hello " + name)return 1;
}
hello2()
hello2(1,"小明",3)

运行结果
image-20240302214733598



函数表达式

把这个函数直接赋值给一个变量,通过调用这个变量来完成函数的调用,函数的另外一种定义方式
注:JS中,函数是一等公民, 可以用变量保存, 也可以作为其他函数的参数或者返回值

示例代码

let result = function Sum() {// 计算1~100之间的和ret = 0;for(i = 0; i <= 100; i++) {ret += i;}return ret
}
console.log(result())

运行结果
image-20240302220437980


2.还可以使用匿名函数,省略函数名

示例代码

let b = function() {console.log(arguments)// 打印调用的参数列表
} 
b();
b(1,2,3);

运行结果
image-20240302221236497



作用域

某个标识符名字在代码中的有效范围,作用域主要分成以下两个:

  • 全局作用域: 在整个script标签中, 或者单独的 js 文件中生效
  • 局部作用域: 在函数内部生效

示例代码

let num = 10;// 全局变量
function test01() {let num = 100;// 局部变量console.log(num)
}
function test02() {let num = 200;// 局部变量console.log(num)
}
console.log(num)
test01()
test02()

运行结果
image-20240302222221072


2.在JS中,如果定义一个变量不使用letvar,此时这个变量就变成一个全局变量

示例代码

for(i = 1; i <= 100; i++) {}
console.log(i)

运行结果
image-20240302222745158



作用域链

函数可以定义在函数内部,内部函数可以访问外部函数的变量,采取的是链式查找的方式,从内到外依次进行查找

示例1:

let num = 10
function test01() {let num = 100//100console.log(num)function test02() {let num = 200;//200console.log(num)}test02()
}
test01()

运行结果
image-20240302223551479


示例2:

let num = 10
function test01() {let num = 100//100console.log(num)function test02() {//let num = 200;//100console.log(num)}test02()
}
test01()

运行结果
image-20240302224207499


示例3:

let num = 10
function test01() {// let num = 100//10console.log(num)function test02() {//let num = 200;//10console.log(num)}test02()
}
test01()

运行结果
image-20240302224439223


示例4:

//let num = 10
function test01() {// let num = 100//10console.log(num)function test02() {//let num = 200;//10console.log(num)}test02()
}
test01()

运行结果

image-20240302224747276

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/714988.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实验:依赖注入之setter注入

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大三在校生&#xff0c;喜欢AI编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc;️…

【数据结构与算法】整数二分

问题描述 对一个排好序的数组&#xff0c;要求找到大于等于7的最小位置和小于等于7的最大位置 大于等于7的最小位置 易知从某个点开始到最右边的边界都满足条件&#xff0c;我们要找到这个区域的最左边的点。 开始二分&#xff01; left指针指向最左边界&#xff0c;right…

2024-03-01(金融AI行业与大数据生态圈)

1.金融这一块的算法&#xff0c;不像推荐系统&#xff0c;图像等领域&#xff0c;金融领域的算法都比较成熟了。现在来说门槛低&#xff0c;属于初期阶段&#xff0c;上升期。 2.反欺诈的数据标签比较少&#xff0c;有一种“标签染色”的方法来做反欺诈模型的标签。 3.常用反…

官宣 | 凯琦供应链成为亚马逊SPN物流服务商!

再播一条喜讯&#xff01;在亚马逊官方平台的筛选考核下&#xff0c;凯琦供应链近日正式入驻亚马逊SPN服务商平台&#xff0c;成为亚马逊SPN第三方承运商。 这也标志着凯琦9年来在FBA物流领域的服务质量得到了客户、官方及行业的广泛认可&#xff0c;未来凯琦将继续为亚马逊卖家…

第六讲:函数

函数 1. 函数的概念2. 库函数2.1 标准库和头文件2.2 库函数的使用方法2.2.1 功能2.2.2 头文件包含2.2.3 实践2.2.4 库函数文档的一般格式 3. 自定义函数3.1 函数的语法形式3.2 函数的举例 4. 形参和实参4.1 实参4.2 形参4.3 实参和形参的关系 5. return语句6. 数组做函数参数7.…

ubuntu个人系统软件安装配置备忘

1. 替换软件源 /etc/apt/source.list 2. 安装必要软件 安装基础软件 sudo apt update sudo apt install -y python3-pip git vim curl wget clang clang-format flameshot docker升级pip3 python3 -m pip install --upgrade pip 安装google浏览器 https://deb.pkgs.org/…

Excel 按奇数偶数列处理数据

目录 一. 需求背景1.1 获取偶数列的数据1.2 奇偶列数据互换 二. 解决方式2.1 为列添加奇偶辅助列2.2 通过公式将奇偶列互换 一. 需求背景 1.1 获取偶数列的数据 ⏹ 最近在整理歌单&#xff0c;发现部分歌曲没有歌词&#xff0c;于是打算自己制作一份。 从网上找到了歌词&…

JavaScript-关于事件、事件流(捕获、冒泡)、事件源、常用事件

1.如何注册事件(如何绑定事件) ​ 何为注册事件&#xff0c;就是给元素添加事件&#xff0c;其方式有传统注册事件、方法监听注册事件。 0、1级事件&#xff08;传统注册事件&#xff09;不允许多个响应程序 我们在元素内或js内使用on的方式就是传统注册事件&#xff0c;这种形…

#WEB前端(CSS基础)

1.实验&#xff1a;HTML是网页骨架&#xff0c;CCS是网页装修 2.IDE&#xff1a;VSCODE 3.记录&#xff1a; style 4.代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"view…

学习笔记-李沐动手学深度学习(七)(19-21,卷积层、填充padding、步幅stride、多输入多输出通道)

总结 19-卷积层 【补充】看评论区建议的卷积动画视频 数学中的卷积 【链接】https://www.bilibili.com/video/BV1VV411478E/?fromsearch&seid1725700777641154181&vd_sourcee81e116c4ffe5e79d4bc44738263eda4 【可判断是否为卷积的典型标志】两个函数中自变量相加…

Salesforce CPQ - 02 - Quote Price

最近又有客户来咨询学习Salesforce CPQ&#xff0c;所以本人总结了下近几年CPQ培训的一些实际案例拿出来分享给大家&#xff1b; 再次介绍下本人是一位Salesforce十多年的从业者。 先来介绍下Salesforce的价格体系&#xff0c;再介绍下各个Product Price是如何配置及使用的&a…

测试需求平台8-Arco组件实现产品增改需求

✍此系列为整理分享已完结入门搭建《TPM提测平台》系列的迭代版&#xff0c;拥抱Vue3.0将前端框架替换成字节最新开源的arco.design&#xff0c;其中约60%重构和20%新增内容&#xff0c;定位为从 0-1手把手实现简单的测试平台开发教程&#xff0c;内容将囊括基础、扩展和实战&a…

在什么时候企业档案才会发生调整

档案在企业中通常会调整在以下几个时刻&#xff1a; 1. 入职时&#xff1a;员工入职时&#xff0c;企业会要求员工提供个人档案&#xff0c;包括身份证件、学历证明、工作经历等相关文件。 2. 离职时&#xff1a;员工离职时&#xff0c;企业会整理员工的离职档案&#xff0c;包…

JDBC

概念&#xff1a; JDBC 就是使用Java语言操作关系型数据库的一套API 全称&#xff1a;( Java DataBase Connectivity ) Java 数据库连接。 JDBC的本质&#xff1a; 官方&#xff08;sun公司&#xff09;定义的一套操作所有关系型数据库的规则&#xff0c;即 接口各个数据库厂…

Filebeat将csv导入es尝试

一、安装 在docker中安装部署ELKfilebeat 二、主要配置 - type: log # Change to true to enable this input configuration. enabled: true # Paths that should be crawled and fetched. Glob based paths. paths: - /home/centos/pip_v2.csv #源路径 #…

Sqli-labs靶场第15关详解[Sqli-labs-less-15]

Sqli-labs-Less-15 #自动化注入-SQLmap工具注入 SQLmap用户手册&#xff1a;文档介绍 - sqlmap 用户手册 由于这题是post请求&#xff0c;所以先使用burp进行抓包&#xff0c;然后将数据包存入txt文件中打包 用-r 选择目标txt文件 python sqlmap.py -r data.txt -current-db…

Visual Studio C++项目远程断点调试客户现场程序方法

前言 程序开发一个很常见的场景&#xff0c;就是程序在自己本地部署调试明明一点问题都没有&#xff0c;但是部署到客户现场就问题百出&#xff0c;要调试起来还很困难&#xff0c;在自己本地也没有条件复现&#xff0c;很多时候只能靠日志一点点排查和猜测&#xff0c;耗费大…

我在代码随想录|写代码Day31 | 贪心算法总结篇 | 贪心终结一题

&#x1f525;博客介绍&#xff1a; 27dCnc &#x1f3a5;系列专栏&#xff1a; <<数据结构与算法>> << 算法入门>> << C项目>> &#x1f3a5; 当前专栏: << 算法入门>> 专题 : 数据结构帮助小白快速入门算法 &#x1f4…

AJAX实例

AJAX - Asynchronous JavaScript and XML - 异步的JavaScript与XML&#xff0c;不是一门新技术&#xff0c;只是一个新的术语。&#xff08;老技术新玩法&#xff09; - 使用AJAX&#xff0c;网页能够将增量更新呈现在页面上&#xff0c;而不需要刷新整个页面。 - 虽然X代表…

力扣1892 页面推荐Ⅱ

力扣1892&#xff0c;页面推荐Ⅱ&#xff0c;为一个社交媒体网站实施一个页面推荐系统。如果页面被user_id的 至少一个朋友喜欢 &#xff0c;而 不被user_id喜欢 &#xff0c;你的系统将 推荐 一个页面到user_id。 目录 题目描述 解题思路 完整代码 优化 题目描述 表&…