主题:介绍引用类型Object、Array。

在上一章中,作者就在说变量的值的时候,提到过引用类型这个概念。JavaScript中存在基本类型和引用类型,其中引用类型很重要,这里有许多我们需要注意的东西。从目录中,可以看到JavaScript中的引用类型有:Object类型、Array类型、Data类型、RegExp类型、Function类型、基本内置类型、单体内置类型。下面我将整理这里的知识点。

①引用类型是一种数据结构,用于将数据和功能组织在一起,它也被称为类,但JavaScript中却不支持类和接口都基本机构,故称之为对象定义。

②Object是使用最多的一个类型。创建Object有两种方法。

第一种使用new操作符:

 var person = new Object();
person.name = "xuchaoi";
person.age = 24;

第二种使用对象字面量表示法:

 var person = {
name: "xuchaoi",
age: "24"
} // 访问对象的值:person.name

③创建Array和创建Object类似。可以通过new操作符或数组字面量表示法创建

④通过Array.isArray()方法来检测数组。因为typeof()检测数组、对象或Null类型返回的都是“object”

⑤拆分数组成字符串方法:join()

 var name = ["小明", "小红", "小青"];
consol.log(name.join("&")); // 小明&小红&小青

⑥数组模拟数据结构栈。push()向数组末尾添加值,pop()移除数组末尾项。从而实现后进先出的栈结构

⑦数组模拟数据结构对。push()向数组末尾添加值,shift()移除数组首项。从而实现先进先出的对结构

⑧unshift()与shift()相反,它向数组首项添加值

⑨数组倒序方法:reverse()。该方法会反转数组项的顺序。

⑩数组排序方法:sort()。默认情况下,它会先为数组每项进行toString()转型,然后按照升序排列数组项

 var values = [0, 1, 5, 10, 15];
console.log(value.sort()); //0,1,10,15,5

这样的结果显然不是我们想要的,这里sort()方法接受一个比较函数作为参数,以便我们控制顺序。比较函数有两个参数,分别是前一个值和后一个值。如果第一个值放在第二个值后面则返回一个正数,反之返回一个负数,无论先后返回0。

function compare(value, nextValue) {
if(value < nextValue) {
return -1;
} else if(value > nextValue) {
return 1;
} else{
return 0;
}
}
var values = [1, 0, 10, 5, 15];
console.log(values.sort(compare)); //0,1,5,10,15

⑪连接数组:concat(),接受参数:字符串、数组

⑫截取数组(不对原数组进行改变生成新数组)方法:slice()。接收连个参数:起始值,结束值(可省略)。

 var colors = ["红色", "黄色", "绿色", "蓝色"];
var colors1 = colors.slice(1); //截取从起始值到结束(数值都是从0计数)
var colors2 = colors.slice(1,3) //截取从起始值到结束值(不包括结束值)
console.log(colors1); //["黄色", "绿色", "蓝色"]
console.log(colors2); //["黄色", "绿色"]

⑬操作数组的方法:splice()。该方法可以删除数组的项,向数组中插入项,给数组替换项(即在删除数组项的同时再在相应位置添加项)

⑭数组项的位置方法:indexOf()。从数组第一项向后查我们设置的值,一旦查到就返回该值在数组中的位置索引,没有查到返回-1。利用这点可以对数组进行查重

 //原理说明:利用indexOf只会返回数组中元素首次出现的位置与filter内函数index值的不等进行筛选
var arry = [1,2,3,4,1,2,3];
var newArray = arry.filter(function(element,index,self) {
return self.indexOf(element) === index;
}); //说明:filter()会遍历数组,过滤数组不符合要求的元素
console.log(newArray); //[1,2,3,4]

⑮数组遍历map()。

 var numbers = [1, 2, 3, 4, 5];
var numbers2 = numbers.map(function(item, index, array){
return item * 2;
});
console.log(numbers2); // [2,4,6,8,10]

⑯数组遍历forEach()

 var numbers = [1, 2, 3, 4, 5];
numbers.forEach(function(item, index, array){
array[index] = item * 2;
});
console.log(numbers); // [2,4,6,8,10]

⑰数组累积迭代方法reduce()

 var numbers = [1, 2, 3, 4, 5];
var sum = numbers.reduce(function(prev, cur, index, array) {
return prev + cur;
}); //reduce迭代函数接受4个参数:前一个值,当前值,项的索引,数组对象
console.log(sum); //

这里先说到数组,下节将继续讲述引用类型章节的注意要点!

最新文章

  1. 使用xUnit,EF,Effort和ABP进行单元测试(C#)
  2. cuplayer酷播播放器 swf 带参数直接播放
  3. CryptoJS DES加密
  4. Android应用主题与横竖屏的切换
  5. loj 1257 (求树上每一个点到树上另一个点的最长距离)
  6. Explode TArray
  7. Python静态方法的使用
  8. (转)c# math 计算两点之间的角度公式
  9. 实现输出h264直播流的rtmp服务器
  10. JDBC 与 ODBC 区别
  11. 【MongoDB】mongoimport and mongoexport of data (一)
  12. ES 中的那些坑
  13. MySQL Replication, 主从和双主配置
  14. L10 安装网卡驱动
  15. AIX 7.1 install python
  16. Linux之yum
  17. Java中四种遍历List的方法
  18. CSS3学习系列之字体
  19. node.js的安装及配置
  20. 团队项目必备神器——自定义Lint

热门文章

  1. Tomcat性能调优-让小猫飞奔
  2. Dubbo-使用Maven构建Dubbo服务的可执行jar包
  3. Mina的客户端
  4. 图解安卓-c++开发-通过java 调用c++ jni的使用
  5. nginx的gzip模块
  6. Linux C 遍历指定目录
  7. nginx 学习笔记(1) nginx安装
  8. C# 接口用法
  9. GetHashCode方法学习
  10. elasticsearch环境搭建