JS基础学习第六天
数组(Array)
数组也是一个对象,它和普通的对象一样,也是用来存储一些值的,不同的是普通对象是使用字符串作为属性名的,而数组使用数字作为索引来操作元素
数组的存储性能比普通对象好,再开发中我们经常使用数组来存储一些数据
索引就是从0开始的整数
数组的操作:
创建数组
1 |
var arr = new Array(); |
向数组中添加元素,数组中的元素可以是任何数据类型(包括对象,函数,数组)
语法:数组对象[索引] = 值;
1 |
arr[0] = 123; |
创建数组时直接添加元素
语法:
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 |
for(var i=0 ; i<数组.length ; 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基础学习第六天的更多相关文章
- JS基础学习——对象
JS基础学习--对象 什么是对象 对象object是JS的一种基本数据类型,除此之外还包括的基本数据类型有string.number.boolean.null.undefined.与其他数据类型不同的 ...
- JS基础学习——闭包
JS基础学习--闭包 什么是闭包 闭包的定义如下,它的意思是闭包使得函数可以记住和访问它的词法范围,即使函数是在它声明的词法范围外执行.更简单来讲,函数为了自己能够正确执行,它对自己的词法范围产生闭包 ...
- JS基础学习——作用域
JS基础学习--作用域 什么是作用域 变量的作用域就是变量能被访问到的代码范围,比如在下面的这个js代码中,变量a的作用域就是函数foo,因此在全局作用域内的console.log(a)语句不能访问到 ...
- JS 基础学习随想
2012年就已经接触过了js,给我的印象:这是一门谈不上复杂的语言.大概这就是所谓的学的越浅,用的越少,觉得自己会的东西好像得更多吧!开始做基础练习题的时候觉得好像都十分简单.可是后来在做到对象数组的 ...
- handlebars.js基础学习笔记
最近在帮学校做个课程网站,就有人推荐用jquery+ajax+handlebars做网站前端,刚接触发现挺高大上的,于是就把一些基础学习笔记记录下来啦. 1.引用文件: jquery.js文件下载:h ...
- JS基础学习1
1 JS 概述 一个完整的javascript实现是由以下3个不同部分组成的: (1) 核心(ECMAscript) (2) 文档对象模型(DOM) Document object ...
- JS基础学习篇(一)
近来一直在学习js和jquery.刚刚进入前端工作还没有多久,虽然大学里学习的是编程自认为也学的还可以,但前端接触的不多,一直认为前端十分简单.其实不然,特别是工作的时候要自己设计一个完整的项目前端, ...
- Node.js基础学习四之注册功能
前言:在Node.js学习(二)和(三)中介绍了如何在Node.js 中获取登录的用户名和密码与数据库进行验证并返回数据给客户端 需求:实现注册功能 为了区分登录和注册是两个不同的请求,在端口后面加上 ...
- 两万字Vue.js基础学习笔记
Vue.js学习笔记 目录 Vue.js学习笔记 ES6语法 1.不一样的变量声明:const和let 2.模板字符串 3.箭头函数(Arrow Functions) 4. 函数的参数默认值 5.Sp ...
随机推荐
- windows10 WSL
搭建WSL linux下的home目录,映射windows的目录地址 用户家目录 ➜ ~ pwd /home/ajanuw C:\Users\ajanuw\AppData\Local\Packages ...
- scrapy 运行逻辑
爬虫的步骤:发送请求获得响应→解析并提取数据→保存数据 我们沿用这个朴素的逻辑去理解scrapy 一.发送请求获得响应 1.爬虫发送请求request到引擎 2.引擎将请求request传递给调度器s ...
- JS判断对象是否包含某个属性
1.使用hasOwnProperty()判断 hasOwnProperty方法的参数就是要判断的属性名称,当对象的属性存在时返回true,否则返回false. var obj = { name:'ja ...
- Java常用类:Scanner类
一.简介 java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入. 二.创建对象 示例: Scanner scanner = new Scanner(Sy ...
- 微信小程序滚动条设置
隐藏滚动条 ::-webkit-scrollbar { width: 0rpx; height: 0rpx; background-color: transparent; } 其实设置为宽高为 0 或 ...
- vue3中watch函数
watch 监听普通类型 let count = ref(1); const changeCount = () => { count.value+=1 }; watch(count, (newV ...
- MySQL注入时常用函数
注入常用函数 数据库相关 database() --- 返回当前数据库名 @@datadir --- 读取数据库路径 @@basedir --- 读取数据库安全路径 @@version_compile ...
- OAID 文档与获取DemoAPK
OAID 查看器 接入 OAID SDK 的 Demo 工程 完整项目地址 Github 文档与 Demo 下载 release 提供 APK 下载 支持设备见 说明文档 常见问题见 F&Q文 ...
- 模式识别Pattern Recognition
双目摄像头,单目摄像头缺少深度 Train->test->train->test->predicive
- 2020年12月-第02阶段-前端基础-CSS Day03
CSS Day03 盒子模型(CSS重点) css学习三大重点: css 盒子模型 . 浮动 . 定位 主题思路: 理解: 1.能说出盒子模型有那四部分组成 2.能说出内边距的作用以及对盒子的影响 3 ...