数组

数组的概念:

将多个元素(通常是同一类型)按照一定顺序排列放到一个集合中,这个集合称之为数组---简(一组有序的数据)

数组的作用:可以一次性存储多个数据

数组的定义:

1.通过构造函数创建数组

语法:

var 数组名=new Array();
var array=new Array();//定义了一个数组
  var arr1=new Array();//构造函数的方式---空数组
  var arr2=new Array(5);//构造函数的方式定义了一个数组,数组中有5个元素,数组长度是5,每个数据是undefined
  var arr3=new Array(10,20,1000,40,50,60);构造函数的方式定义了一个数组,并且有多个数据(这里是6个数组)
 
  总结点:当括号中是一个数时,代表数组的长度;当括号多个值时,代表的是每个具体的数据值;


数组的名字如果直接输出,那么直接就可以把数组中的数据显示出来,如果没有数据就看不到数据;

2.通过字面量的方式创建数组

语法:

 var 数组名=[];//空数组
var array=[];
var 数组名=[值1,值2,值3];
无论是构造函数的方式还是字面量的方式,定义的数组,如果有长度,那么默认是undefined

数组的长度:就是数组中的元素个数--可以通过length来获取数组的长度

// 创建一个空数组
var arr1 = [];
// 创建一个包含3个数值的数组,多个数组项以逗号隔开
var arr2 = [1, 3, 4];
// 创建一个包含2个字符串的数组
var arr3 = ['a', 'c']; // 可以通过数组的length属性获取数组的长度
console.log(arr3.length);
// 可以设置length属性改变数组中元素的个数
arr3.length = 0;

数组的索引(下标):从0开始,到数组的长度减1结束

可以通过索引来获取/设置/增加数组元素

// 格式:数组名[下标]    下标又称索引
// 功能:获取数组对应下标的那个值,如果下标不存在,则返回undefined。
var arr = ['red',, 'green', 'blue'];
arr[0]; // red
arr[2]; // blue
arr[3]; // 这个数组的最大下标为2,因此返回undefined

// 格式:数组名[下标/索引] = 值;
  // 如果下标有对应的值,会把原来的值覆盖,如果下标不存在,会给数组新增一个元素。
  var arr = ["red", "green", "blue"];
  // 把red替换成了yellow
  arr[0] = "yellow";
  // 给数组新增加了一个pink的值
  arr[3] = "pink";

通过下标设置数组的元素值: 数组名[索引]=值
通过下标访问数组的元素值: 数组名[索引]
数组中元素的值的类型可以不一样
数组的长度是可以被改变的

数组遍历

遍历:遍及所有,对数组的每一个元素都访问一次叫遍历

数组遍历的基本语法:

for(var i=0;i<arr.length;i++){
//数组遍历的固定模式
}

函数

把一段相对独立的具有特定功能的代码块封装起来,形成一个独立实体,就是函数,起个名字(函数名),在后续开发中可以反复调用

函数的作用:代码的重复使用

函数的定义

1.函数声明

function 函数名(){
// 函数体
}

函数声明的时候,函数体并不会执行,只要当函数被调用的时候才会执行

2.函数表达式

var fn = function() {
// 函数体
}

函数的调用:

函数名();

函数体只有在调用的时候才会执行,调用需要()进行调用。

可以调用多次(重复使用)

// 声明函数
function sayHi() {
console.log("吃了没?");
}
// 调用函数
sayHi();

函数参数:

在函数定义的时候,函数名字后面的小括号里的变量就是参数,目的是函数在调用的时候,用户传进来的值操作,此时函数定义的时候后面的小括号里的变量就叫参数;写俩个变量就有俩个参数(写多少代表有多少个);

在函数调用的时候,按照提示的方法,给变量赋值---就叫传值,把这个值传到变量(参数中);

函数内部是一个封闭的环境,可以通过参数的方式,把外部的值传递给函数内部
带参数的函数声明
function 函数名(形参1, 形参2, 形参...){
// 函数体
}
带参数的函数调用
函数名(实参1, 实参2, 实参3);

形参:在声明函数的时候,为了函数的功能更加灵活,有些值固定不了,对于这些固定不了的值,我们可以给函数设置参数,这个参数没有具体的值,仅仅起到一个占位置的作用

实参:如果函数在声明时,设置了形参,那么在函数调用时就需要传入对应的参数(实参可以是变量也可以是值)

函数的返回值

当函数执行完的时候,并不是所有时候都需要把结果打印出来;我们需要函数给我们一些反馈(比如计算的结果返回进行后续的运算),这个时候可以让函数返回一些东西,也就是返回值。函数通过return返回一个返回值。

在函数内部有return关键字,并且在关键字后面有内容,这个内容被返回了
当函数调用之后,需要这个返回值,那么就定义变量接收,即可
 
返回值语法:
//声明一个带返回值的函数
function 函数名(形参1, 形参2, 形参...){
//函数体
return 返回值;
} //可以通过变量来接收这个返回值
var 变量 = 函数名(实参1, 实参2, 实参3);

函数的调用结果就是返回值,因此我们可以对函数调用结果进行操作。

返回值详细解析:

如果函数没有显示的使用 return语句 ,那么函数有默认的返回值:undefined

如果函数使用 return语句,那么跟再return后面的值,就成了函数的返回值

如果函数使用 return语句,但是return后面没有任何值,那么函数的返回值也是:undefined

函数使用return语句后,这个函数会在执行完 return 语句之后停止并立即退出,也就是说return后面的所有其他代码都不会再执行。

arguments的使用

JavaScript中,arguments对象是比较特别的一个对象,实际上是当前函数的一个内置属性。也就是说所有函数都内置了一个arguments对象,arguments对象中存储了传递的所有的实参。arguments是一个伪数组,因此及可以进行遍历

---定义函数的时候,不知道是否传入了参数的,没有确定形参的个数,在用户调用函数之后传入的实参储存在arguments对象中,函数中通过arguments对象我们可以进行操作

定义:

function f1() {
//获取的是函数在调用的时候,传入了几个参数
//console.log(arguments.length);
//使用arguments对象可以获取传入的每个参数的值
console.log(arguments);
}

实例:

function f1() {
//arguments----->数组使用------伪数组---
var sum=0;
for(var i=0;i<arguments.length;i++){
sum+=arguments[i];
}
return sum;
} console.log(f1(10,20,30));

函数其他

匿名函数:没有名字的函数

命名函数:有名字的函数

函数表达式:
var 变量=匿名函数
var f1=function (){ };
如果是函数表达式,那么此时前面的变量中存储的就是一个函数,而这个变量就相当于是一个函数,就可以直接加小括号调用了
  f1();
  函数表达式后面,赋值结束后,要加分号
 
  函数定义--函数声明
  function 函数名(){
    函数体
  }

自调用函数(没有名字)

匿名函数不能通过直接调用来执行,因此可以通过匿名函数的自调用方式来执行(声明的同时直接调用);

(function () {
alert(123);
})();

函数是一种数据类型

function fn() {}
console.log(typeof fn);
通过typeof 获取函数的类型:function;

函数作为参数使用

函数可以作为参数使用,如果一个函数作为参数,那么我们说这个参数(函数)可以叫回调函数

只要是看到一个函数作为参数使用了,那就是回调函数

函数作为返回值使用

因为函数是一种类型,所以可以把函数可以作为返回值从函数内部返回,这种用法很常见。

function fn(b) {
var a = 10;
return function () {
alert(a+b);
}
}
fn(15)();

JavaScript--总结三(数组和函数)的更多相关文章

  1. JavaScript学习-3——数组、函数、递归

    本章目录 -----------①数组 -----------②函数 -----------③递归 一.数组 弱类型:任何类型数据,且没有强度限制: 强类型:同一类型的数据存储的集合(内存中连续存储) ...

  2. Javascript中判断数组的正确姿势

    在 Javascript 中,如何判断一个变量是否是数组? 最好的方式是用 ES5 提供的 Array.isArray() 方法(毕竟原生的才是最屌的): var a = [0, 1, 2]; con ...

  3. JavaScript中常见的数组操作函数及用法

    JavaScript中常见的数组操作函数及用法 昨天写了个帖子,汇总了下常见的JavaScript中的字符串操作函数及用法.今天正好有时间,也去把JavaScript中常见的数组操作函数及用法总结一下 ...

  4. JavaScript 数组操作函数--转载+格式整理

    JavaScript 数组操作函数(部分)--转载+格式整理 今天看了一篇文章,主要讲的对常用的Js操作函数:push,pop,join,shift,unshift,slice,splice,conc ...

  5. JavaScript初探 三 (学习js数组)

    JavaScript初探 (三) JavaScript数组 定义 创建数组 var 数组名 = [元素0,元素1,元素2,--] ; var arr = ["Huawei",&qu ...

  6. javascript第三弹——数组

    什么是数组 数组是值的有序集合.每个值叫做元素,每个元素在数组中都有数字位置编号,也就是索引.JS中的数组是弱类型的,数组中可以含有不同类型的元素.数组元素甚至可以是对象或其它数组.数组的长度是动态的 ...

  7. Javascript入门(三)函数

    Javascript函数 一.函数定义与执行 <script type="text/javascript"> //define function fun1(){ ale ...

  8. JavaScript中有三个可以对字符串编码的函数,分别是: escape(),encodeURI(),encodeURIComponent()

    JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decod ...

  9. javascript进阶课程--第三章--匿名函数和闭包

    javascript进阶课程--第三章--匿名函数和闭包 一.总结 二.学习要点 掌握匿名函数和闭包的应用 三.匿名函数和闭包 匿名函数 没有函数名字的函数 单独的匿名函数是无法运行和调用的 可以把匿 ...

  10. javascript中的所有内容都是一个对象:字符串、值、数组、函数…

    javascript中的所有内容都是一个对象:字符串.值.数组.函数…此外,javascript允许自定义对象.javascript对象JavaScript提供多个内置对象,如字符串.日期.数组等.对 ...

随机推荐

  1. mongo聚合操作

    1 mongodb的聚合是什么 聚合(aggregate)是基于数据处理的聚合管道,每个文档通过一个由多个阶段(stage)组成的管道,可以对每个阶段的管道进行分组.过滤等功能,然后经过一系列的处理, ...

  2. java并发编程实战《六》等待-通知机制

    用"等待-通知"机制优化循环等待 前言 在破坏占用且等待条件的时候,如果转出账本和转入账本不满足同时在文件架上这个条件,就用死循环的方式来循环等待. 1 // 一次性申请转出账户和 ...

  3. 第7.26节 Python中的@property装饰器定义属性访问方法getter、setter、deleter 详解

    第7.26节 Python中的@property装饰器定义属性访问方法getter.setter.deleter 详解 一.    引言 Python中的装饰器在前面接触过,老猿还没有深入展开介绍装饰 ...

  4. anaconda 配置虚拟环境

    工作时有时候会遇到不同版本的问题,比如深度学习tensorflow 1.14版本 和 2.0版本,或者cpu版本和gpu版本,那么这个时候建立虚拟环境就很方便了 anaconda命令行下 1) act ...

  5. 半夜删你代码队 Day1冲刺

    一.团队信息 1.团队项目:Midnight聊天室 2.团队名称:半夜删你代码队 3.队员信息: 职务 项目经理 主开发团队 测试人员 姓名 陈惠霖 周楚池 侯晓龙 余金龙 胡兆禧 林涛 二.Alph ...

  6. DVWA各级文件包含漏洞

    File Inclusion文件包含漏洞 漏洞分析 程序开发人员通常会把可重复使用的函数写入到单个文件中,在使用某些函数时,直接调用此文件,而无需再次编写,这种调用文件的过程被称为包含. 有时候由于网 ...

  7. 三、TestNG的基本注解(1)

    Before类别和After类别注解 举例说明 创建两个TestNGAnnotationTest.java和TestNGAnnotationTest2.java的类 TestNGAnnotationT ...

  8. SpringBoot瘦身部署(15.9 MB - 92.3 KB)

    1. 简介   SpringBoot项目部署虽然简单,但是经常因为修改了少量代码而需要重新打包上传服务器重新部署,而公网服务器的网速受限,可能整个项目的代码文件仅仅只有1-2MB甚至更少,但是需要上传 ...

  9. jmeter__问题记录,中文乱码问题(json参数化)

    这种情况在jmeter3.0的版本中才会产生,注意:这不是乱码,而是由于3.0中优化body data后,使用默认的字体(Consolas)不支持汉字的显示.这样的情况可以这样调整:进入jmeter. ...

  10. 【原创】WPF TreeView带连接线样式的优化(WinFrom风格)

    一.前言 之前查找WPF相关资料的时候,发现国外网站有一个TreeView控件的样式,是WinFrom风格的,样式如下,文章链接:https://www.codeproject.com/tips/67 ...