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.hqwc.cn/news/460056.html

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

相关文章

qnx log写入文件 简单实现

qnx log写入文件 简单实现 #ifndef __COMMON_LOG__ #define __COMMON_LOG__#include "fcntl.h" #include "pthread.h" #include "stdarg.h" #include "unistd.h" #include <stdio.h> #include <string.h>//#define _LOG_…

Golang 基础 Go Modules包管理

Golang 基础 Go Modules包管理 在 Go 项目开发中&#xff0c;依赖包管理是一个非常重要的内容&#xff0c;依赖包处理不好&#xff0c;就会导致编译失败&#xff0c;本文将系统介绍下 Go 的依赖包管理工具。 我会首先介绍下 Go 依赖包管理工具的历史&#xff0c;并详细介绍下…

使用SM4国密加密算法对Spring Boot项目数据库连接信息以及yaml文件配置属性进行加密配置(读取时自动解密)

一、前言 在业务系统开发过程中,我们必不可少的会使用数据库,在应用开发过程中,数据库连接信息往往都是以明文的方式配置到yaml配置文件中的,这样有密码泄露的风险,那么有没有什么方式可以避免呢?方案当然是有的,就是对数据库密码配置的时候进行加密,然后读取的时候再…

JUnit实践教程——Java的单元测试框架

前言 大家好&#xff0c;我是chowley&#xff0c;最近在学单元测试框架——JUnit&#xff0c;写个博客记录一下&#xff01; 在软件开发中&#xff0c;单元测试是确保代码质量和稳定性的重要手段之一。JUnit作为Java领域最流行的单元测试框架&#xff0c;为开发人员提供了简单…

使用 WMI 查询安全软件信息

在这篇文章中&#xff0c;我们将详细介绍如何使用 Windows Management Instrumentation (WMI) API 来查询当前计算机上安装的安全软件的基本信息。我们将分析代码的各个部分&#xff0c;并解释每个步骤所涉及的技术和原理。 一、什么是 WMI&#xff1f; WMI 是 Windows Manag…

电力负荷预测 | 基于GRU门控循环单元的深度学习电力负荷预测,含预测未来(Python)

文章目录 效果一览文章概述源码设计参考资料效果一览 文章概述 电力负荷预测 | 基于GRU门控循环单元的深度学习电力负荷预测,含预测未来(Python&

STM32DMA

文章目录 前言一、介绍部分DMA简介存储器映像DMA框图仲裁器 DMA基本结构请求映像数据对齐方式数据转运ADC扫描模式配合DMA 二、代码部分DMA数据转运连接电路代码实现ADC扫描DMA实现思路连接电路代码实现 总结函数相关 前言 介绍STM32DMA的原理以及功能&#xff0c;使用DMA配合…

目标检测 | 卷积神经网络(CNN)详细介绍及其原理详解

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。卷积神经网络&#xff08;Convolutional Neural Network&#xff0c;CNN&#xff09;是一种深度学习模型&#xff0c;主要用于图像识别和计算机视觉任务。它的设计灵感来自于生物学中视觉皮层的工作原理。CNN的核心思想是通…

车载自动化项目:Python

1. 自动化测试用的什么框架&#xff1f; 第一种&#xff1a;PythonSeleniumuittest框架 首先是拿到需求文档&#xff0c;基于这个需求去进行搭建。 用pytestrequestallure 这些第三方库进行编写自动化脚本。 举个例子一般的话整个的一个自动化的搭建是分为6层嘛&#xff1a…

redis集群配置

redis集群配置.pdf 跳转/opt/redis → cd /opt/redis 1、下载redis wget http://download.redis.io/releases/redis-6.2.1.tar.gz 2、解压 tar -xzvf redis-6.2.1.tar.gz 3、编译 cd /opt/redis/redis-6.2.1 make MALLOClibc 4、安装 make PREFIX/opt/redis/ install ⽣成…

Talk|香港中文大学(深圳)张雪遥:音频生成开源工具包Amphion的歌声转换指南

本期为TechBeat人工智能社区第570期线上Talk。 北京时间2月7日(周三)20:00&#xff0c;香港中文大学(深圳)博士生—张雪遥的Talk已准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “音频生成开源工具包Amphion的歌声转换指南”&#xff0c;系统地介绍他的团…

mysql 对于null字段排序处理

最近遇到一个需求 &#xff0c;需要对一个报表的多个字段进行多字段复杂条件排序 排序字段为NULL时 Mysql对于排序字段为NULL时&#xff0c;有自身默认的排序规则&#xff0c;默认是认为null 值 是无穷小 ELECT id,script_id,last_modified,live_count,next_show FROM virtua…