JavaScript基础第四天

JavaScript 基础第四天

今天我们学习js的函数,包括普通函数、匿名函数、箭头函数以及函数作用域。

1. 函数的初体验

1.1. 什么是函数

函数是 JavaScript 中的基本组件之一。一个函数是 JavaScript 过程一组执行任务或计算值的语句。要使用一个函数,你必须将其定义在你希望调用它的作用域内。

1.2. 函数基本结构

声明一个完整函数包括关键字函数名形式参数函数体返回值5 个部分。

image-20240207182808325

示例:

function sayHi(name) {let result = "你好啊," + name;return result;
}
let name = "小明";
alert(sayHi(name));

image-20240207182939324

2. 匿名函数

没有名字的函数。

2.1. 函数表达式

// 声明
let fn = function () {console.log("匿名函数");
};
// 调用
fn();

2.2. 立即执行函数

无需调用,立即执行。

(function () {xxx;
})();
(function () {xxxx;
})();
// 1.第一种写法
(function (x, y) {console.log(x + y);let num = 10;let arr = [];
})(1, 2);// 2.第二种写法
(function (x, y) {let arr = [];console.log(x + y);
})(1, 4);

3. 箭头函数

箭头函数是一种声明函数的简洁语法,它与普通函数并无本质的区别,差异性更多体现在语法格式上,属于 ES6 中的函数写法。

3.1. 语法 1

const fn = function () {console.log("普通函数");
};const fn = () => {console.log("箭头函数");
};

3.2. 语法 2

只有一个参数可以省略小括号。

const fn = (x) => {return x + x;
};
console.log(fn(1)); //2const fn = (x) => {return x + x;
};
console.log(fn(1)); //2

3.3. 语法 3

函数只有一行,可以写到一行,无需写 return 直接返回值。

const fn = (x, y) => {return x + y;
};
console.log(fn(1, 2)); //3const fn = (x, y) => {x + y;
};
console.log(fn(1, 2)); //3

3.4. 语法 4

加括号的函数体返回对象字面量表达式 .

const fn1 = (uname) => ({ uname: uname });
console.log(fn1("小明"));

image-20240207194756976

4. 函数作用域

4.1. 局部变量

在作用域内声明的变量,我们称为局部变量。

function fn() {let a = 1;console.log(a);
}
fn(); //1

在作用域外部,无法访问到作用域内声明的变量。

4.2. 全局变量

处于全局作用域内的变量,称为全局变量。

  • 题目 1

    下面的代码打印什么?

const fn = () => {let a = 1;const fn1 = () => {let a = 2;console.log(a);};console.log(a);a = 3;fn1();
};
fn();
// 1.执行fn a=1打印
// 2.执行了fn1 a=2打印
//1 2
  • 题目 2

    下面的代码打印什么?

const fn1 = () => {let a = 4;const fn2 = () => {let a = 5;const fn3 = () => {console.log(a);};console.log(a);a = 24;fn3();};console.log(a);a = 30;fn2();
};
fn1();
// 4 5 24

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

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

相关文章

Linux下库函数、静态库与动态库

库函数 什么是库 库是二进制文件, 是源代码文件的另一种表现形式, 是加了密的源代码; 是一些功能相近或者是相似的函数的集合体. 使用库有什么好处 提高代码的可重用性, 而且还可以提高程序的健壮性;可以减少开发者的代码开发量, 缩短开发周期. 库制作完成后, 如何给用户…

大模型为什么会有 tokens 限制?

人是以字数来计算文本长度,大语言模型 (LLM)是以 token 数来计算长度的。LLM 使用 token 把一个句子分解成若干部分。 token 可以是一个单词、一个单词中的一个部分、甚至是一个字符,具体取决于它使用的标记化方法 (tokenization…

为电子表格嵌入数据库,Excel/WPS一键升级为管理系统

将Excel表格转化为管理系统,这款工具能够实现只需导入表格数据,即可自动生成相应的软件和APP。 表格办公的烦恼,有遇到吧? 对于具有一定规模的企业而言,各类表格如同繁星般众多,既有日常使用的常规表格&a…

泰克示波器——TBS2000系列界面整体介绍

目录 1.1 通道区域面板标识1.2 示波器测试输出(检测探针与设置的好坏)1.3 面板其他快捷按钮1.4 波器整体界面 1.1 通道区域面板标识 在通道面板的下方标识有示波器的通道属性以及参数值,如我使用的型号为“TBS2104X”的示波器,面…

格子表单GRID-FORM | 文档网站搭建(VitePress)与部署(Github Pages)

格子表单/GRID-FORM已在Github 开源,如能帮到您麻烦给个星🤝 GRID-FORM 系列文章 基于 VUE3 可视化低代码表单设计器嵌套表单与自定义脚本交互文档网站搭建(VitePress)与部署(Github Pages) 效果预览 格…

如何使用VMware分享出来的虚拟机系统(OVF文件)

前言 这几天看到很多小伙伴都在安装虚拟机,但成不成就不知道了。 所以小白准备把自己安装完成的系统打包分享给小伙伴。 如果你需要已经安装完成的虚拟系统,可以获取哦!打开即用! 虚拟机系统包括: Win10 专业版 Wi…

anaconda+pytorch+pycharm安装总结

1.下载最新的Anaconda,目前是python3.11适用 anaconda官网 安装教程 卸载并重新安装的教程 (如果找不到火绒清理注册表垃圾的位置可以拉到文章底部查看) 2.pytorch安装,注意python版本、cuda版本和pytorch版本的适配 安装教程 3.pycharm安装和…

C++: 模板初阶

目录 引子&#xff1a; 函数模板 格式&#xff1a; 例子&#xff1a; 函数模板的实例化&#xff1a; 隐形实例化&#xff1a;让编译器根据实参推演模板参数的实际类型 显式实例化&#xff1a; 在函数名后的<>中指定模板参数的实际类型 模板参数的匹配原则 类模…

ssm+vue的校园一卡通密钥管理系统(有报告)。Javaee项目,ssm vue前后端分离项目。

演示视频&#xff1a; ssmvue的校园一卡通密钥管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;ssm vue前后端分离项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系…

C++入门学习(二十五)do-while循环

do { // 代码块&#xff0c;至少会执行一次 } while (条件); 对比一下while和do-while循环&#xff1a; 因为while循环先判断条件&#xff0c;所以数字10直接就没有进入for循环里&#xff0c;卡在了判断条件这一步&#xff0c;所以就没有输出数据&#xff1b; do-while循环是…

clickhouse计算前后两点间经纬度距离

问题 计算如图所示前后两点经纬度的距离&#xff1f; 方法 1、用开窗函数将如图所示数据下移一行 selectlongitude lon1,latitude lat1,min(longitude) over(order by time1 asc rows between 1 PRECEDING and 1 PRECEDING) lon2,min(latitude) over(order by time1 asc row…

Vagrant 虚拟机工具基本操作指南

Vagrant 虚拟机工具基本操作指南 ​#虚拟机 #​ ​#vargant#​ ​#ubuntu#​ ‍ 虚拟机virtualbox ,VMWare及WSL等大家都很了解了&#xff0c;那Vagrant是什么东西&#xff1f; 它是一组命令行工具&#xff0c;可以象Docker管理容器一样管理虚拟机&#xff0c;这样快速创…

鸿蒙OS导入项目报错不能运行 @ohos\hvigor\bin\hvigor.js‘

在自学HarmonyOS时&#xff0c;想在DevEco Studio导入官方示例代码&#xff1a;待办列表&#xff08;ArkTS&#xff09;报错 C:\Users\woods\Downloads\test01\ToDoListArkTS\node_modules\ohos\hvigor\bin\hvigor.js --mode module -p moduleentrydefault -p productdefault …

03-抓包_封包_协议_APP_小程序_PC应用_WEB应用

抓包_封包_协议_APP_小程序_PC应用_WEB应用 一、参考工具二、演示案例&#xff1a;2.1、WEB应用站点操作数据抓包-浏览器审查查看元素网络监听2.2、APP&小程序&PC抓包HTTP/S数据-Charles&Fiddler&Burpsuite2.3、程序进程&网络接口&其他协议抓包-WireSh…

YOLO部署实战(2):使用OpenCV优化视频转图片流程并设置帧数

在计算机视觉和图像处理领域&#xff0c;OpenCV是一个强大的开源库&#xff0c;它为处理图像和视频提供了丰富的工具和功能。本文将介绍如何使用OpenCV将视频文件转换为一系列图片&#xff0c;并演示如何通过设置转换的帧数来优化这一过程。 1 Win10配置OpenCV 在Windows操作…

数据结构与算法之美学习笔记:50 | 索引:如何在海量数据中快速查找某个数据?

目录 前言为什么需要索引&#xff1f;索引的需求定义构建索引常用的数据结构有哪些&#xff1f;总结引申 前言 本节课程思维导图&#xff1a; 在第 48 节中&#xff0c;我们讲了 MySQL 数据库索引的实现原理。MySQL 底层依赖的是 B 树这种数据结构。留言里有同学问我&#xff…

提示由于找不到msvcp120dll无法继续执行此代码怎么办

在计算机系统中&#xff0c;MSVCP120.dll是一个至关重要的动态链接库文件&#xff0c;它是Microsoft Visual C Redistributable Package的一部分&#xff0c;对于许多基于Windows的应用程序运行至关重要。当系统提示“msvcp120dll丢失”时&#xff0c;意味着该文件可能由于误删…

C++之RTTI实现原理

相关系列文章 C无锁队列的原理与实现 如何写出高质量的函数&#xff1f;快来学习这些coding技巧 从C容器中获取存储数据的类型 C之多层 if-else-if 结构优化(一) C之多层 if-else-if 结构优化(二) C之多层 if-else-if 结构优化(三) C之Pimpl惯用法 C之RTTI实现原理 目录 1.引言…

汇编笔记 01

小蒟蒻的汇编自学笔记&#xff0c;如有错误&#xff0c;望不吝赐教 文章目录 笔记编辑器&#xff0c;启动&#xff01;debug功能CS & IPmovaddsub汇编语言寄存器的英文全称中英对照表muldivandor 笔记 编辑器&#xff0c;启动&#xff01; 进入 debug 模式 debug功能 …

vue3-内置组件-KeepAlive

KeepAlive <KeepAlive> 是一个内置组件&#xff0c;它的功能是在多个组件间动态切换时缓存被移除的组件实例。 基本使用 默认情况下&#xff0c;一个组件实例在被替换掉后会被销毁。这会导致它丢失其中所有已变化的状态——当这个组件再一次被显示时&#xff0c;会创建…