资讯专栏INFORMATION COLUMN

JavaScript红宝书笔记(五)---引用类型

G9YH / 3640人阅读

摘要:在通过对象字面量定义对象时,实际上不会调用构造函数相当于因为是松散类型数据,所以类型也拥有着同样的特性。数组的每一项可以保存任何类型的数据,且数组的大小是可以动态调整的。对数组中的每一项运行给定函数,返回该函数会返回的项组成的数组。

1.在通过对象字面量定义对象时,实际上不会调用 Object 构造函数

var person = {
    name : "Nicholas",
    age : 29
};
相当于
var person = new Object();
person.name = "xx";
person.age = 29;

2.因为JavaScript是松散类型数据,所以Array类型也拥有着同样的特性。JavaScript数组的每一项可以保存任何类型的数据,且JavaScript数组的大小是可以动态调整的。

3.检测数组为了解决多个框架产生的多个全局环境的问题,可以使用Array.isArray()方法替代instanceof,也是编程中常用的方法。

4.join()方法只接收一个参数,即用作分隔符的字符串,然后返回包含所有数组项的字符串。

var colors = ["red", "green", "blue"];
alert(colors.join(",")); //red,green,blue
alert(colors.join("||")); //red||green||blue

5.队列方式操作数组先进先出,利用push(),shift()方法;
队列反向操作数组后进先出,利用unshift()从前端添加,pop()取出末端的值

6.数组利用sort()、reverse()方法进行排序,sort()方法可传递一个比较函数进行正反排序;
数组利用concat()函数进行添加数组元素,构建一个新数组
数组利用splice()函数截取数组中的元素构建返回一个新数组;splice可以进行删除、插入、替换操作

var colors = ["red", "green", "blue"];
var removed = colors.splice(0,1); // 删除第一项
alert(colors); // green,blue
alert(removed); // red,返回的数组中只包含一项
removed = colors.splice(1, 0, "yellow", "orange"); // 从位置 1 开始插入两项
alert(colors); // green,yellow,orange,blue
alert(removed); // 返回的是一个空数组
removed = colors.splice(1, 1, "red", "purple"); // 插入两项,删除一项
alert(colors); // green,red,purple,orange,blue
alert(removed); // yellow,返回的数组中只包含一项

7.数组利用indexOf()以及lastIndexOf()进行索引,参数包括索引项和索引开始位置;

8.every():对数组中的每一项运行给定函数,如果该函数对每一项都返回 true,则返回 true。
filter():对数组中的每一项运行给定函数,返回该函数会返回 true 的项组成的数组。
forEach():对数组中的每一项运行给定函数。这个方法没有返回值。
map():对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
some():对数组中的每一项运行给定函数,如果该函数对任一项返回 true,则返回 true

every()是每一项都需要满足,而some()是只要有一项为true则都为true。
filter()函数作为过滤函数,返回一个满足条件的新数组。
map()函数是返回对数组操作后的新数组。
forEach()是再循环体里执行某些操作。

9.归并数组的方法: reduce()和 reduceRight();
这两个方法都会迭代数组的所有项,然后构建一个最终返回的值。传给 reduce()和 reduceRight()的函数接收 4 个参数:前一个值、当前值、项的索引和数组对象。每一次执行返回的结果都作为下一次执行函数的第一个参数。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/105083.html

相关文章

  • JavaScript宝书笔记(四)---变量、作用域和内存问题

    摘要:在操作对象时,实际上是在操作对象的引用而不是实际的对象。为此,引用类型的值是按引用访问的。标记清除是目前主流的垃圾收集算法,这种算法的思想是给当前不使用的值加上标记,然后再回收其内存 1.在操作对象时,实际上是在操作对象的引用而不是实际的对象。为此,引用类型的值是按引用访问的。 2.当从一个变量向另一个变量复制引用类型的值时,两个变量实际上将引用同一个对象,因此,改变其中一个变量,就会...

    imtianx 评论0 收藏0
  • JavaScript宝书笔记(七)---Function类型

    摘要:函数实际上是对象。所以需要消除这种紧耦合。函数内部属性引用的是函数据以执行的环境对象或者也可以说是值函数的名字仅仅是一个包含指针的变量而已。因此,即使是在不同的环境中执行,全局的函数与函数指向的仍然是同一个函数。 1.函数实际上是对象。每个函数都是 Function 类型的实例,而且都与其他引用类型一样具有属性和方法 2.由于函数名仅仅是指向函数的指针,因此函数名与包含对象指针的其他变...

    cyrils 评论0 收藏0
  • JavaScript宝书笔记(一)---JS概述、变量及基本数据类型

    摘要:是一个数值可以被转换成数值不能转换成数值可以被转换成数值十六进制数八进制数十进制数十六进制数可以避免,无法使用方法转换成字符串的情况 1.JavaScript由三个部分组成:ECMAScript(提供核心语言功能)、DOM(文档对象模型,提供访问和操作网页内容的方法和接口)、BOM(浏览器对象模型,提供与浏览器交互的方法和接口) 2.JavaScript概念:是一种专为与网页交互而设计...

    sevi_stuo 评论0 收藏0
  • 宝书笔记-第5章-引用类型

    showImg(https://segmentfault.com/img/bVbwihz?w=1558&h=6145);

    ZoomQuiet 评论0 收藏0
  • 关于JavaScript 函数传参

    摘要:最早由在年的语言中提出。该求值策略被用于等多种语言。该策略的重点是调用函数传参时,函数接受对象实参引用的副本既不是按值传递的对象副本,也不是按引用传递的隐式引用。它和按引用传递的不同在于在共享传递中对函数形参的赋值,不会影响实参的值。 周五晚上下班回家的路上,突然想到了 CommonJS 规范、Node.js 模块化等等各种东西,然后就想到了熟悉的 module.exports。 大约...

    CloudwiseAPM 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<