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

JavaScript 数组 函数

目录

1.数组的概念

2.创建数组

2.1 数组创建的方式

2.2利用new 创建数组

2.3 利用数组字面量创建数组

2.4 数据元素的类型

3.获取数组当元素

3.1数组元素的索引

4.遍历数组

4.1数组的长度

5.数组中新增元素

5.1通过修改length 长度新增数组元素

5.2通过修改数组索引新增数组元素

JavaScript  函数

1.函数的概念

 2.函数的使用

2.1声明函数

2.2调用函数

2.3函数的封装

3.函数的参数

3.1形参和实参

 3.3函数形参和实参个数不匹配问题

3.4小结

4.函数的返回值

4.1 return 语句

4.2 return 终止函数

4.3 return 的返回值

4.4 函数没有return 返回 undefined

4.5 break,continue,return 的区别

5.arguments 的使用

6. 函数的两种声明方式

1.利用函数关键字 function 自定义函数方式。

2. 函数表达式方式(匿名函数)


1.数组的概念

 数组时指一组数据的集合,其中的每个数据被称作元素,子数组中可以存放任意类型的元素。数组是一种将数据存储在单个变量名下的优雅方式。

2.创建数组

2.1 数组创建的方式

js中创建数组有两中方式:

  • 利用new 创建数组
  • 利用数组字面量创建数组

2.2利用new 创建数组

var 数组名 = new Array();

var arr = new Array();  // 创建一个新的空数组 

2.3 利用数组字面量创建数组

// 1. 使用数组字面量方式创建空的数组

var 数组名 = [ ];

//2.使用数组字面量方式创建带初始化值的数组

var 数组名 = ['a' , 'b', 'c']; 

2.4 数据元素的类型

数组中可以存放任意类型的数据,例如字符串,数字,布尔值等。

var arr = ['a',0,true]; 

3.获取数组当元素

3.1数组元素的索引

索引(下标):用来访问数组元素的下标(数组下标从零开始)

数组可以通过索引来访问,设置,修改对应的数组元素。我们可以通过"数组名[索引]" 的形式来获取数组中的元素。

这里的访问就是获取得到的意思。

4.遍历数组

遍历:就是把数组中的每一个元素从头到尾都访问一次。

4.1数组的长度

使用‘数组名.length’可以访问数组元素的数量(数组长度)

5.数组中新增元素

可以通过修改length长度以及索引号增加数组元素

5.1通过修改length 长度新增数组元素

  • 可以通过修改length 长度来实现数组扩容的目的
  • length 属性是可读写的 

5.2通过修改数组索引新增数组元素

  • 可以通过修改数组索引的方式追加数组元素
  • 不能直接给数组名赋值,否则就会覆盖掉以前的数据 

JavaScript  函数

1.函数的概念

在js 里面,可能会定义非常多的相同代码或者功能相似的代码,这些代码可能需要大量重复使用。

虽然for 循环语句也可能实现一些简单的重复操作,但是比较具有具有局限性,此时我们就可以使用js 中的函数。 

 2.函数的使用

函数在使用时分为两步:声明函数和调用函数。

2.1声明函数

//声明函数

function 函数名() {

        //函数体代码

        }

  • function 是声明函数的关键字,必须小写
  • 由于函数一般是为了实现某个功能才定义的,所以通常我们将函数名命名为动词 比如 getSum 

2.2调用函数

//调用函数

函数名();  //通过调用函数名来执行函数体代码 

  • 调用的时候千万不要忘记添加小括号
  • 口诀:函数不调用,自己不执行 

注意:声明函数本身不会执行代码,只要调用函数时才会执行函数体代码 

2.3函数的封装

  • 函数的封装是把一个或者多个功能通过函数的方式封装起来,对外只提供一个简单的接口
  • 简单理解 : 封装类似将电脑配件整合组装到机箱中(类似快递打包) 

3.函数的参数

3.1形参和实参

在声明函数时,可以在函数名称后面的小括号中添加一些参数,这些参数被称为形参,而在调用该函数时,同样也需要传递相应的参数,这些参数被称为实参。

参数说明
形参形式上的参数 函数定义的时候 传递的参数 当前并不知道是什么
实参实际上的参数 函数调用的时候传递的参数 实参是传递个形参的

参数的作用: 在函数内部某些值不能固定,我们可以通过参数在函数调用函数时传递不同的值进去。 

 3.3函数形参和实参个数不匹配问题

参数个数说明
实参个数等于形参个数输出正确结果
实参个数多于形参个数只取到形参的个数
实参个数小于形参个数多的形参定义undefined,结果为NaN

注意:在JavaScript中,形参的默认值是undefined。

3.4小结

  • 函数可以带参数也可以不带参数
  • 声明函数的时候,函数名括号里面的是形参,形参的默认值为undefined
  • 调用函数的时候,函数名括号里面的是实参
  • 多个参数中间用逗号分隔
  • 形参的个数可以和实参个数不匹配,但是结果不可预计,我们尽量要匹配。 

4.函数的返回值

4.1 return 语句

有的时候,我们希望函数将值返回给调用者,此时通过使用return 语句就可以实现。

1.函数是做某件事或者实现某种功能       

2. 函数的返回值格式

        function 函数名() {

             return 需要返回的结果;

        }

         函数名();

        (1) 我们函数只是实现某种功能,最终的结果需要返回给函数的调用者函数名() 通过return 实现的

        (2) 只要函数遇到return 就把后面的结果 返回给函数的调用者  函数名() = return后面的结果

4.2 return 终止函数

return 语句之后的带啊吗不被执行。

4.3 return 的返回值

return只能返回一个值。如果用逗号隔开多个值,以最终一个为准。

4.4 函数没有return 返回 undefined

函数都是有返回值的

  1. 如果有 return 则返回 return 后面的值
  2. 如果没有 return 则返回 undefined 

4.5 break,continue,return 的区别

  • break: 结束当前的循环体(如 for while)
  • continue: 跳出本次循环,继续执行下次循环(如 for while)
  • return:  不仅可以退出循环,还能够返回 return 语句中的值,同时还可以结束当前的函数体内的代码 

5.arguments 的使用

当我们不确定有多少个参数传递的时候,可以用arguments来获取。在JavaScript中,arguments实际上它是当前函数的一个内置对象。所有函数都内置了一个arguments 对象中存储了传递的所有实参。

arguments 展示形式是一个伪数组,因此可以进行遍历。伪数组具有以下特点:

  • 具有length 属性
  • 按索引方式存储数据
  • 不具有数组的push pop 等方法

6. 函数的两种声明方式

1.利用函数关键字 function 自定义函数方式。

// 声明定义方式

function fn() {...} // 调用

fn();

  •  因为有名字,所以也被称为命名函数
  • 调用函数的代码既可以放到声明函数的前面,也可以放在声明函数的后面

2. 函数表达式方式(匿名函数)

// 这是函数表达式写法,匿名函数后面跟分号结束

var fn = function(){...}; // 调用的方式,函数调用必须写到函数体下面

fn();

利用函数表达式方式的写法如下:

  •  因为函数没有名字,所以也被称为匿名函数
  •  这个fn 里面存储的是一个函数
  •  函数表达式方式原理跟声明变量方式是一致的
  •  函数调用的代码必须写到函数体后面
http://www.lryc.cn/news/93383.html

相关文章:

  • 【哈佛积极心理学笔记】第7讲 逆境还是机遇
  • java springboot整合MyBatis做数据库查询操作
  • 11 二阶矩方法和Lovasz局部引理
  • 低代码赛道拥挤 生态聚合成为破局关键
  • B+树:高效存储与索引的完美结合
  • 左右排版的PDF,如何转换为单栏排版的word?
  • D349周赛:注意题目提示里,数据范围隐含的算法复杂度提示
  • iOS -- block one
  • 第十二篇:强化学习SARSA算法
  • 电力vr智能巡检模拟实操教学灵活性高成本低
  • vscode右键点击,松开后自动触发鼠标所在位置的按钮(误触发双击效果)
  • 【UE5】分分钟简单使用像素流云服务(Pixel Streaming)
  • 2021 年全国硕士研究生入学统一考试管理类专业学位联考逻辑试题
  • 【算法】【算法杂谈】两个排序数组中找第k小的数
  • ABAP 新语法--Open SQL(草稿)
  • 2023最新常用开发网站汇总
  • ELK 日志采集使用
  • 深入剖析RocketMQ源码:消息传递的奥秘
  • Protocol https not supported or disabled in libcurl
  • 一步步搭建基于 ts + express + prisma + mongodb + zod 后端服务
  • 深入理解深度学习——Transformer:编码器(Encoder)部分
  • 【图像处理】基于收缩系数的粒子群优化和引力搜索算法的多级图像阈值研究【CPSOGSA】(Matlab代码实现)
  • PortSwigger web缓存中毒(Cache Poisoning)
  • msf渗透练习-生成木马控制window系统
  • 【c++】组合类+继承情况下构造顺序
  • 盛元广通生物化学重点实验室化学品信息化安全管理系统
  • 1.知识积累
  • 20230612----重返学习-函数式编程-数据类型检测-网络层优化
  • Java实现删除txt第一行
  • Go语言函数式编程库samber/lo