数组(Array)

数组也是一个对象,它和普通的对象一样,也是用来存储一些值的,不同的是普通对象是使用字符串作为属性名的,而数组使用数字作为索引来操作元素
数组的存储性能比普通对象好,再开发中我们经常使用数组来存储一些数据
索引就是从0开始的整数

数组的操作:

创建数组

1
2
var arr = new Array();  
var arr = [];

向数组中添加元素,数组中的元素可以是任何数据类型(包括对象,函数,数组)
语法:数组对象[索引] = 值;

1
2
arr[0] = 123;  
arr[1] = "hello";

创建数组时直接添加元素
语法:

1
var arr = [元素1,元素2....元素N];

例子:

1
var arr = [123,"hello",true,null];

读取数组中的元素

语法:数组[索引],如果读取不存在的索引,他不会报错而是返回undefined

使用length属性来获取和设置数组的长度

获取长度:

数组对象.length
length获取到的是数组的最大索引+1
对于连续的数组,length获取到的就是数组中元素的个数

修改数组的长度

数组.length = 新长度
如果修改后的length大于原长度,则多出的部分会空出来
如果修改后的length小于原长度,则原数组中多出的元素会被删除

向数组的最后添加元素

数组[数组.length] = 值;

数组的方法

自己去文档的数组对象中查看

遍历数组

遍历数组就是将数组中元素都获取到
一般情况我们都是使用for循环来遍历数组

1
2
3
for(var i=0 ; i<数组.length ; i++){  
//数组[i]
}

使用forEach()方法来遍历数组(更为方便)

forEach方法需要一个函数作为参数,像这种由我们创建不由我们调用的函数,称为回调函数。

数组中有几个元素,该回调函数就会被调用几次,
每次调用时,都会将遍历到的信息以实参的形式传递进来,
我们可以定义形参来获取这些信息。
value:正在遍历的元素
index:正在遍历元素的索引
obj:被遍历对象

详见文档

call()和apply()

这两个方法都是函数对象的方法,需要通过函数对象来调用
当对函数调用call()和apply()都会调用函数执行
在调用call()和apply()时可以将一个对象指定为第一个参数,此时这个对象将会成为函数执行时的this
call()方法可以将实参在对象之后依次传递call(boj, 1, 2)
apply()方法需要将实参封装到一个数组中统一传递

- 使用后改变了this的值,个人认为这样所有方法就可以随便调用了,不再拘泥于一个对象。

this的不同的情况:

1.它所在函数以函数的形式调用时,this是window
2.它所在函数以方法的形式调用时,this就是调用方法的对象
3.它所在函数以构造函数的形式调用时,this就是新创建的对象
4.它所在函数以使用call和apply方法的形式调用时,this就是指定的那个对象

arguments

在调用函数时,浏览器每次都会传递两个隐含的参数:
1.函数的上下文对象 this
2.函数封装的对象 arguments
arguments是一个类数组对象,它也可以通过索引来操作数据,也可以获取长度
在调用函数时,我们所传递的实参都会在arguments中保存
arguments.length可以用来获取实参的长度
我们即使不定义形参,也可以通过arguments来使用实参,只不过比较麻烦
arguments[0] 表示第一个实参
arguments[1] 表示第二个实参
它里面有一个属性叫做callee,这个属性对应一个函数对象,就是当前正在指向的函数对象

学识浅薄,如有错误,恳请斧正,在下不胜感激。

JS基础学习第六天的更多相关文章

  1. JS基础学习——对象

    JS基础学习--对象 什么是对象 对象object是JS的一种基本数据类型,除此之外还包括的基本数据类型有string.number.boolean.null.undefined.与其他数据类型不同的 ...

  2. JS基础学习——闭包

    JS基础学习--闭包 什么是闭包 闭包的定义如下,它的意思是闭包使得函数可以记住和访问它的词法范围,即使函数是在它声明的词法范围外执行.更简单来讲,函数为了自己能够正确执行,它对自己的词法范围产生闭包 ...

  3. JS基础学习——作用域

    JS基础学习--作用域 什么是作用域 变量的作用域就是变量能被访问到的代码范围,比如在下面的这个js代码中,变量a的作用域就是函数foo,因此在全局作用域内的console.log(a)语句不能访问到 ...

  4. JS 基础学习随想

    2012年就已经接触过了js,给我的印象:这是一门谈不上复杂的语言.大概这就是所谓的学的越浅,用的越少,觉得自己会的东西好像得更多吧!开始做基础练习题的时候觉得好像都十分简单.可是后来在做到对象数组的 ...

  5. handlebars.js基础学习笔记

    最近在帮学校做个课程网站,就有人推荐用jquery+ajax+handlebars做网站前端,刚接触发现挺高大上的,于是就把一些基础学习笔记记录下来啦. 1.引用文件: jquery.js文件下载:h ...

  6. JS基础学习1

    1 JS 概述 一个完整的javascript实现是由以下3个不同部分组成的: (1)     核心(ECMAscript) (2)     文档对象模型(DOM)  Document object ...

  7. JS基础学习篇(一)

    近来一直在学习js和jquery.刚刚进入前端工作还没有多久,虽然大学里学习的是编程自认为也学的还可以,但前端接触的不多,一直认为前端十分简单.其实不然,特别是工作的时候要自己设计一个完整的项目前端, ...

  8. Node.js基础学习四之注册功能

    前言:在Node.js学习(二)和(三)中介绍了如何在Node.js 中获取登录的用户名和密码与数据库进行验证并返回数据给客户端 需求:实现注册功能 为了区分登录和注册是两个不同的请求,在端口后面加上 ...

  9. 两万字Vue.js基础学习笔记

    Vue.js学习笔记 目录 Vue.js学习笔记 ES6语法 1.不一样的变量声明:const和let 2.模板字符串 3.箭头函数(Arrow Functions) 4. 函数的参数默认值 5.Sp ...

随机推荐

  1. windows10 WSL

    搭建WSL linux下的home目录,映射windows的目录地址 用户家目录 ➜ ~ pwd /home/ajanuw C:\Users\ajanuw\AppData\Local\Packages ...

  2. scrapy 运行逻辑

    爬虫的步骤:发送请求获得响应→解析并提取数据→保存数据 我们沿用这个朴素的逻辑去理解scrapy 一.发送请求获得响应 1.爬虫发送请求request到引擎 2.引擎将请求request传递给调度器s ...

  3. JS判断对象是否包含某个属性

    1.使用hasOwnProperty()判断 hasOwnProperty方法的参数就是要判断的属性名称,当对象的属性存在时返回true,否则返回false. var obj = { name:'ja ...

  4. Java常用类:Scanner类

    一.简介 java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入. 二.创建对象 示例: Scanner scanner = new Scanner(Sy ...

  5. 微信小程序滚动条设置

    隐藏滚动条 ::-webkit-scrollbar { width: 0rpx; height: 0rpx; background-color: transparent; } 其实设置为宽高为 0 或 ...

  6. vue3中watch函数

    watch 监听普通类型 let count = ref(1); const changeCount = () => { count.value+=1 }; watch(count, (newV ...

  7. MySQL注入时常用函数

    注入常用函数 数据库相关 database() --- 返回当前数据库名 @@datadir --- 读取数据库路径 @@basedir --- 读取数据库安全路径 @@version_compile ...

  8. OAID 文档与获取DemoAPK

    OAID 查看器 接入 OAID SDK 的 Demo 工程 完整项目地址 Github 文档与 Demo 下载 release 提供 APK 下载 支持设备见 说明文档 常见问题见 F&Q文 ...

  9. 模式识别Pattern Recognition

    双目摄像头,单目摄像头缺少深度 Train->test->train->test->predicive

  10. 2020年12月-第02阶段-前端基础-CSS Day03

    CSS Day03 盒子模型(CSS重点) css学习三大重点: css 盒子模型 . 浮动 . 定位 主题思路: 理解: 1.能说出盒子模型有那四部分组成 2.能说出内边距的作用以及对盒子的影响 3 ...