前端三剑客 —— JavaScript (第四节)

news/2024/5/3 0:16:53/文章来源:https://blog.csdn.net/weixin_51562484/article/details/137500871

目录

内容回顾:

函数 ***

什么是函数

函数定义

函数调用

函数使用示例

匿名函数

无参函数

箭头函数

1、无参无返回值

2、无参有返回值

3、无参有返值,但函数体只有一条语句,则大括号可以省略, return 语句可以省略

4、有一个参数,则小括号可以省略

5、如果有多个参数,则小括号不能省略

值传递和引用传递

默认值参数

arguments对象

递归函数

数组 ***

什么数组

数组的定义方式

什么元素

遍历数组

数组的常用方法

1. concat()

2. join()

3. pop()

4. push()

5. unshift()

6. shift()

7. reverse()

8. slice()

9. splice()

10. sort()


内容回顾:

1.流程控制

        顺序流程:从左往右,从上往下的

        分支流程:

                单分支:if(条件表达式){}

                双分支:if(条件表达式){} else {}

                多分支:if(条件表达式1){} else if (条件表达式2){} else {}

                Switch 语句:switch(表达式):{case 值1:语句1;break;case 值2:语句2 break;deafult:默认语句块;}

        循环流程:

                for循环:

                        它的语法:for(let 循环变量 = 初始值;循环条件表达式;循环变量步长){

循环体

}

                        它的适用场景:一般适用于循环次数确定的情况

                while循环:

                        语法: let循环变量 = 初始值;while(循环条件表达式){循环体;循环变量步长}

                        场景:一般用于循环次数不确定的情况

                do…while循环:

                        语法:let 循环变量 = 初始值;do{循环体;循环变量步长;}while(循环条件表达式);

                        场景:一般用于至少要执行一次循环的情况。

函数 ***

什么是函数

函数也叫方法,它是某个功能的代码集合它本质上就是一个功能,一个行为,一个动作。

函数定义

要定义一个函数,我们需要使用到一个叫 function 关键字,它的意思就是功能。语法结构如下:

上面的结构中,function 一个关键字,固定法。函数名称要遵循命名规则和规范如果小括号中有参数,则需要指定参数,如果没有则小括号为空,但是不能没有小括号。一个函数执行后,会有一个结果返回给调用处。如果没有明确的使用 return 关键字来进行返回值,则会隐含的返回一个 undefined 值。

函数调用

要想调用函数,那么我们需要先声明这个函数,然后通过函数名称来进行调用。语法如下:

函数使用示例

假设我们定义一个用于计算和的函数,这个函数需要传递一个参数,这个参数的作用是计算从 1 ~ 这个参数的和。

程序分析:

1. return 语句用于返回函数执行后的结果,如果return语句后没有写具体的值,则返回 undefined,这也是每一个函数的默认返回值

2. return 语句执行后,它后面的代码就不会再执行了,所以一般 return 会放到语句块的最后

3. 在函数中可以使用分支、循环等语句

问题:如果我是先调用函数,然后再定义函数可以吗?

从上面的运行结果可以发现,我们是可以先调用后定义函数的

匿名函数

函数是可以采用匿名的方式为定义,然后通过引用名称来调用这个匿名函数。

无参函数

函数是可以没有参数的,没有参数函数叫无参函数。

箭头函数

在 ES6 中,定义了一种新的函数,这种函数分为两个部分,用一个箭头来分隔。箭头前叫参数,箭头后加函数体。它的语法格式:

对于箭头函数有以下几种变形:

1、无参无返回值

2、无参有返回值

3、无参有返值,但函数体只有一条语句,则大括号可以省略, return 语句可以省略

4、有一个参数,则小括号可以省略

5、如果有多个参数,则小括号不能省略

箭头函数的使用示例:

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>箭头函数的使用</title>

</head>

<body>

<script>

    // 1. 定义一个无参无返回值函数

    let say = () => {

        console.log('hello')

    }

    say()

    // 2. 定义一个无参有返回值函数

    let show = (str) => {

        return str

    }

    let r = show('hi')

    console.log(r)

    // 3. 一个参数的,小括号可以省略

    let show1 = str => {

        return str

    }

    r = show1('你好')

    console.log(r)

    // 4. 如果函数体只有一条语句,则大括号和 return 语句可以省略

    let show2 = str => str

    r = show2('大家下午,下午状态一般比较差,要打起精神!')

    console.log(r)

    // 5. 有多个参数,小括号不能省略

    let multi = (a, b) => a * b

    r = multi(2, 3)

    console.log(r)

    // 6. 如果函数体有多条,则大括号不能省略

    let add = (a, b) => {

        if (isNaN(a)) return

        if (isNaN(b)) return

        return a + b

    }

    r = add(1,2)

    console.log(r)

</script>

</body>

</html>

值传递和引用传递

所谓值传递就是指传递的是数值,而引用传递传递的是地址

默认值参数

我们在定义函数的参数列表时,可以给某些参数指定默认值

注意:默认参数必须放到参数列表的最后。默认参数可以不传如果没传则使用默认的值,如果传了则使用所传递的值。

arguments对象

这个对象是用于获取函数所传递的参数

在 JS 中,实际传递的参数个数是可以多余定义函数的的参数个数的。而这些实际的参数,我们可以通过函数的内置对象 arguments 来获取到

递归函数

所谓递归函数就是在函数体内调用自己本身

递归函数必须要有一个出口来结束递归操作,否则就会产生死循环,从而耗尽内存

需求:计算 5! 的值

数组 ***

什么数组

数组是一组数据的集合,在内存中是一段连续的存储空间

数组的定义方式

在 Javascript 中,有 4 种方式来定义数组:直接赋值(弱数据类型的特性、由值的类型确定量的类型)、使用系统提交的 Array 类来创建。

什么元素

在数组中存在的每一个数据就叫元素,这些元素的下标是从 0 开始

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>数组的使用</title>

</head>

<body>

<script>

    // 1. 定义数组

    let arr1 = [1, 3, 5, 7, 9, 11]

    // 艾玛数组的元素个数,通过数据的 length 属性

    console.log(arr1.length)

    // 获取数组的第一个元素,可以通过下标,而下标是从 0 开始

    console.log(arr1[2])

    // 修改数组中下标为 3 的元素为 50

    arr1[3] = 50

    console.log(arr1)

    // 向数组中添加元素 100

    arr1[6] = 100

    console.log(arr1)

    // 2. 定义数组的第二种方式

    let arr2 = new Array(5) // 指定数组的长度,当创建好后,数组中有 5 个空元素

    console.log(arr2)

    arr2[0] = 10

    arr2[1] = 15

    arr2[4] = 20

    console.log(arr2)

    // 3. 定义数组

    let arr3 = new Array(10, 9, 25, 67) // 创建数组的同时指定元素

    console.log(arr3)

</script>

</body>

</html>

说明:

1.使用 Array() 来创建数组时,如果参数只有一个,表示这个数组的元素个数;如果参数有多个则表示在创建数组的同时指定数组的元素。

2.可以使用 [] 来简化数组的创建

3.使用 Array() 时,也可以不使用 new 关键字,但不推荐使用。

遍历数组

遍历数组我们可以使用前端学习的 for 循环、while 循环、do..while 循环。还可以使用 for..in 或者 for ... of

代码分析:

1. 可以使用常规的 for 循环来遍历数组,在遍历时,初值为 0,判断条件为 < 数组.length。然后通过`数组[下标]` 的方式获取对应的元素

2. 使用 for in 的方式来遍历数组,它遍历出来的是数组的元素下标,因此要获取元素还是要通过`数组[下标]` 的方式来获取

3. 使用 for of 的方式来遍历数组,它遍历出来就是数组的元素

4. 使用 ES6中箭头函数来遍历,它遍历出来的也是数组的元素

数组的常用方法

1. concat()

这个方法是用于将多个数组进行连接,并返回连接后的结果

2. join()

这个方法是将数组的元素拼接成一个字符串输出

3. pop()

删除并返回数组的最后一个元素

4. push()

向数组的末尾添加一个或多个元素,并返回新数组的长度

5. unshift()

向数组的头部添加一个或多个元素,并返回新数组的长度

6. shift()

删除数组的第一个元素

7. reverse()

将数组中的元素进行反转

8. slice()

从某个已有的数组中返回所选定的元素,而原来的数组不变

9. splice()

这个方法可以用于添加元素,也可用于删除元素

说明:这个方法的第一个参数表示开始下标位置,第二个参数表示要删除的元素个数,如果值为 0 ,表示不删除,否则表示删除。从第三个参数开始表示要添加的元素。

10. sort()

这个方法是用于对数组中的元素进行排序

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

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

相关文章

零售EDI:Princess Auto EDI对接

Princess Auto 是一家加拿大零售连锁店&#xff0c;专门从事农场、工业、车库、液压和剩余物品的销售。 Princess Auto 总部位于马尼托巴省温尼伯&#xff0c;截至 2024 年 1 月在 10 个省份拥有并经营 55 家商店以及三个配送中心。各种商品均以其“Powerfist”和“Pro.Point”…

【3GPP】【核心网】【5G-A】5G-A三载波聚合介绍

1. 欢迎大家订阅和关注&#xff0c;3GPP通信协议精讲&#xff08;2G/3G/4G/5G/IMS&#xff09;知识点&#xff0c;专栏会持续更新中.....敬请期待&#xff01; 目录 1. 5G-A概念 2. 什么是3CC 3. 3CC的技术看点 4. 3CC的应用场景 5. 3CC支持的终端 1. 5G-A概念 5G-A全称5G…

Unity核心学习

目录 认识模型的制作流程模型的制作过程 2D相关图片导入设置图片导入概述纹理类型设置纹理形状设置纹理高级设置纹理平铺拉伸设置纹理平台打包相关设置 SpriteSprite Editor——Single图片编辑Sprite Editor——Multiple图片编辑Sprite Editor——Polygon图片编辑SpriteRendere…

深度解析SPARK的基本概念

关联阅读博客文章&#xff1a; 深入理解MapReduce&#xff1a;从Map到Reduce的工作原理解析 引言&#xff1a; 在当今大数据时代&#xff0c;数据处理和分析成为了企业发展的重要驱动力。Apache Spark作为一个快速、通用的大数据处理引擎&#xff0c;受到了广泛的关注和应用。…

条件变量的使用(golang)

1、背景 最近在学习go的一个开源协程池&#xff0c;在源码中有用到锁、信号量&#xff0c;锁相对来说用的是比较多的&#xff0c;信号量相对用的较少&#xff0c;之前研究学习过c的std::condition_variable&#xff0c;其实和golang的大同小异&#xff0c;个人感觉c的略强…

面试算法-171-翻转二叉树

题目 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输入&#xff1a;root [4,2,7,1,3,6,9] 输出&#xff1a;[4,7,2,9,6,3,1] 解 class Solution {public TreeNode invertTree(TreeNode root) {if (root n…

绿联 安装火狐浏览器(Firefox),支持访问路由器

绿联 安装火狐浏览器&#xff08;Firefox&#xff09;&#xff0c;支持访问路由器 1、镜像 linuxserver/firefox:latest 前置条件&#xff1a;动态公网IP。 已知问题&#xff1a; 直接输入中文时&#xff0c;不能完整输入&#xff0c;也可能输入法无法切换到中文&#xff0c;可…

栈与队列2s总结(不含单调栈)

6.栈与队列 栈与队列理论基础 队列是先进先出&#xff0c;栈是先进后出。 C中stack 是容器么&#xff1f; 我们使用的stack是属于哪个版本的STL&#xff1f; 我们使用的STL中stack是如何实现的&#xff1f; stack 提供迭代器来遍历stack空间么&#xff1f; 栈和队列是STL…

ORCAL SQLPLUS上机6-1

SQL> declare2 v_num number:9;3 begin4 v_num:v_num1;5 dbms_output.put_line(v_num);6 end;7 / --定义记录类型&#xff0c;类似结构体&#xff0c;用select...into --定义记录类型&#xff0c;类似结构体&#xff0c;用select...into SQL> declaretype employe…

test4111

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和…

5分钟了解清楚【osgb】格式的倾斜摄影数据metadata.xml有几种规范

数据格式同样都是osgb&#xff0c;不同软件生产的&#xff0c;建模是参数不一样&#xff0c;还是有很大区别的。尤其在应用阶段。 本文从建模软件、数据组织结构、metadata.xml&#xff08;投影信息&#xff09;、应用几个方面进行了经验性总结。不论您是初步开始建模&#xf…

【QT+QGIS跨平台编译】175:【QGIS_App跨平台编译】—【错误处理:未定义的class APP_EXPORT】

点击查看专栏目录 文章目录 一、未定义的class APP_EXPORT二、错误处理 一、未定义的class APP_EXPORT 报错信息&#xff1a; 二、错误处理 第18行增加&#xff1a; #include "qgis_app.h"

文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《新型电力系统多阶段输-储协同分布鲁棒规划》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

Adobe After Effects 2024 v24.3 macOS 视频合成及特效制作软件 兼容 M1/M2/M3

Adobe After Effects 是一款适用于视频合成及特效制作软件,是制作动态影像设计不可或缺的辅助工具,是视频后期合成处理的专业非线性编辑软件。 macOS 12.0及以上版本可用 应用介绍 Adobe After Effects简称 AE 是一款适用于视频合成及特效制作软件,是制作动态影像设计不可或缺…

计算分数和-第12届蓝桥杯选拔赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第48讲。 计算分数和&#…

STM32 H7系列学习笔记

必备的API知识 第 1 步&#xff1a;系统上电复位&#xff0c;进入启动文件 startup_stm32h743xx.s&#xff0c;在这个文件里面执行复位中断服务程序。 在复位中断服务程序里面执行函数 SystemInit&#xff0c;在system_stm32h7xx.c 里面。*之后是调用编译器封装好的函数&…

Kubesphere 在 devops 部署项目的时候下载 maven 依赖卡住

Kubesphere 在 devops 部署项目的时候下载 maven 依赖卡住 我下载 下面这段 maven 依赖一直卡住&#xff1a; <build><plugins><plugin><groupId>org.jacoco</groupId><artifactId>jacoco-maven-plugin</artifactId><version>…

LeetCode 80—— 删除有序数组中的重复项 II

阅读目录 1. 题目2. 解题思路3. 代码实现 1. 题目 2. 解题思路 让 index指向删除重复元素后数组的新长度&#xff1b;让 st_idx 指向重复元素的起始位置&#xff0c;而 i 指向重复元素的结束位置&#xff0c;duplicate_num代表重复元素的个数&#xff1b;一段重复元素结束后&am…

Java Web-分层解耦

三层架构 当我们所有代码都写在一起时&#xff0c;代码的复用性差&#xff0c;并且难以维护。就像我们要修改一下服务端获取数据的方式&#xff0c;从文本文档获取改为到数据库中获取&#xff0c;就难以修改&#xff0c;而使用三层架构能很好的解决这个问题。 controller: 控…

PHP 中的 $2y$10,PHP 字符串加密函数 password_hash

PHP 用户密码加密函数 password_hash 自PHP5.5.0之后&#xff0c;新增加了密码散列算法函数(password_hash)&#xff0c;password_hash() 使用足够强度的单向散列算法创建密码的散列 Hash。 password_hash() 兼容 crypt()。 所以&#xff0c; crypt() 创建的密码散列也可用于 …