JavaScript系统学习小结——Object类型、Array类型
今天学习JavaSript中引用变量中的Object类型和Array类型:
1. Js中大多数引用类型值都是Object类型的实例,Object类型在应用程序中存储和传输数据时,是非常理想的选择;
- 创建Object实例的方法有两种:
- 一种是使用new操作符后跟Object构造函数;如下
var person = new Object(); person.name = "Jan"; person.age =22;
- 一种是使用new操作符后跟Object构造函数;如下
- 另一种是使用对象字面量表示法:
var person = { name : “Jan”, age : 22 };
- 另一种是使用对象字面量表示法:
- 在开发中更多的使用的是对象字面量表示法,因为这种语法要求的代码量少,而且能够给人封装数据的感觉;
- 对象字面量也是向函数传递大量可选参数的首选方式;
- 在访问对象属性时,有两种方式:
- 一种是点表示法:如(person.name)
- 另一种是方括号表示法;如(person[“name”])如果属性名中包含导致语法错误的字符,或者属性名使用的是关键字或者保留字,适合使用方括号表示法;
2. Array类型
- Js中的数组的每一项可以保存任何类型的数据;
- 创建数组有两种方式:
- 第一种使用Array构造函数,也可以省略new;
var color = new Array();
- 第一种使用Array构造函数,也可以省略new;
- 第二种基本方式是使用数字字面量表示法:
var color = [‘red’,’ blue’];
- 第二种基本方式是使用数字字面量表示法:
- 数组的length属性不是只读的,通过该属性,可以从数组的末尾移除项或向数组中添加新项;
- 在检测数组类型时,Array.isArray()方法好用比instanceof操作符好用;Array.isArray()不考虑检测值是在哪个全局执行环境中创建的(网页中包含多个框架,存在多个不同的全局变量时);
- 数组的转换方法有:toLocaleString(), toString(), valueOf()和join()方法;
- 其中join()方法,是根据接收不同的参数作为分隔符来构建字符串;
- 数组可以表现的像栈(后进先出),利用push()插入,pop()移除;
- 数组可以表现的像队(先进先出),利用push()插入,shift()移除;
- 数组可以模拟反方向的队,利用unshift()插入,pop()移除;
- 数组的排序方法有:reverse(),sort()方法;
- Reverse()方法会反转数组项的顺序;
- Sort()方法比较的是字符串,按升序排列数组项;
- Sort()方法可以接收一个比较函数作为参数,完善对其他基本数据类型的比较;
function compare(val1, val2) {
if(val1 > val2){
return -1;
}else if(val1 < val2){
return 1;
}else{
return 0;
}
}
- 数组的操作方法有:concat()续接,slice()截取子串, splice()删插换方法;
- 数组的位置查询方法有:indexOf(), lastIndexOf()方法,一个是从开头向后查找,一个是从尾部向前查找;
- 数组的迭代方法有:every(), filter(), forEach(), map(), some();
- Every()和some()方法类似,但前者是每一项都符合传参函数的检验才返回true,后者是只要有一项符合就返回true;
- Filter()方法是返回在传参函数中为true的项组成的数组;
- ForEach()和map()方法类似,forEach()没有返回值;
- 数组的归并方法有:reduce(), reduceRight();这两个方法都会迭代数组的所有项,然后构建一个最终返回的值。不同的是,前者是从开头向最后一项,后者反之;
JavaScript系统学习小结——Object类型、Array类型的更多相关文章
- JavaScript系统学习小结——变量、作用域和内存问题
趁着写完小论文还未彻底消散的学习氛围,开始着重巩固自己JavaScript的基础知识,为秋招做最基本的准备. 变量:Js的变量可能保存两种不同数据类型的值:基本类型值和引用类型值. 基本类型包括:Un ...
- JavaScript中判断对象是否属于Array类型的4种方法及其背后的原理与局限性
前言 毫无疑问,Array.isArray是现如今JavaScript中判断对象是否属于Array类型的首选,但是我认为了解本文其余的方法及其背后的原理与局限性也是很有必要的,因为在JavaScrip ...
- javascript深入浅出——学习笔记(包装对象和类型检测)
3包装对象:https://www.imooc.com/video/5676 当我们尝试把基本类型已对象的方式访问时,javascript会把该基本类型转换为对应的包装类型对象(临时对象),相当于ne ...
- 《JavaScript高级程序设计》读书笔记 ---Array 类型
除了Object 之外,Array 类型恐怕是ECMAScript 中最常用的类型了.而且,ECMAScript 中的数组与其他多数语言中的数组有着相当大的区别.虽然ECMAScript 数组与其他语 ...
- python学习小结7:变量类型
变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的数据类型,这些变量可以存储整 ...
- Javascript高级程序设计--读书笔记之Array类型
1.数组的lenght属性 数组的lenght属性很有特点---他不是只读的,可以同过修改这个属性来向数组的末尾添值加或删除值, 删除值 var color = ["red", & ...
- JavaScript基础学习(四)—Object
一.Object的基本操作 1.对象的创建 在JavaScript中,创建对象的方式有两种:构造函数和对象字面量. (1)构造函数 var person = new Object( ...
- Object类型与Array类型
总结--JS中的引用类型: Object类型,Array类型,Boolean类型,Number类型,String类型,Date类型, Function类型,RegExp类型,单体内置对象(Global ...
- JavaScript引用类型之Array类型一
一.简介 除了Object之外,Array类型恐怕是ECMAScript中最常用的类型了.下面就来分析ECMAScript中的数组与其他语言中的数组的异同性: 1.相同点: (1)他们都是数据的有序列 ...
随机推荐
- 深入理解AngularJs-scope(一)
进入正文前的说明:本文中的示例代码并非AngularJs源码,而是来自书籍<<Build Your Own AngularJs>>, 这本书的作者仅依赖jquery和lodas ...
- ADO.NET中的DataSet和DataReader
ADO.NET提供两个对象用于检索关系型数据并把它存储在内存中,分别是DataSet和DataReader.DataSet提供内存中关系数据的表现--包括表和次序.约束等表间的关系的完整数据集合.Da ...
- JavaScript函数之递归
递归 递归的本质就是使用函数自身来解决问题的思路. 递归的定义(摘): 程序调用自身的编程技巧称为递归( recursion).递归做为一种算法在程序设计语言中广泛应用. 一个过程或函数在其定义或说明 ...
- Spring AOP拦截对Controller的请求时的配置失败
简单的说,就是父子容器的问题,将AOP的配置信息放在applicationContext.xml中,该配置文件被ContextLoaderListener加载,Spring会创建一个WebApplic ...
- 【Windows 10 应用开发】自定义快捷键
上一篇鸟文中,老周通过史无前例的代码向各位 demo 了访问键的用法(即 Alt + 某某).不过,大伙伴们一定会发现,访问键毕竟限制较大,不太灵活,也不好发挥,于是就需要自定义快捷键了. 其实,自定 ...
- fdisk 非交互式创建 分区
一. key 非交互式创建分区, 与 交互式创建分区区别不大. 使用 fdisk 的默认选项, 使用空行即可, 不用回车. 创建 主分区 和 扩展分区时, 需要注意 分区号 二. 创建主分区 fdis ...
- python 标准库 -- configparser
configparser 用于处理 ini 格式的配置文件, 其本质上是利用 open 来操作文件. 示例文件 : [zhangsan] name = zhangsan age = 12 job = ...
- 为什么使用bootstrap在一个页面同时做两个轮播效果时,只有第一个有效??
我们都知道使用bootstrap做轮播效果非常快,但是有时候一个页面会需要两个轮播:但这个时候再次使用bootstrap做轮播效果时就会失效:原因在于bootstrap的Carousel问题,只要修改 ...
- 安装nginx+lua开发环境
一.安装nginx及搭建本地测试环境 1.创建安装目录: /data/nginx2.安装make: yum-y install gcc automake autoconf libt ...
- Linux下重启多个 tomcat 服务的脚本
由于修改tomcat的配置文件或手动操作数据库数据后,tomcat的缓存和redis的缓存很严重,需要经常重启tomcat来释放缓存,经常就是手动重启. # .查找tomcat的进程ID ps -ef ...