1.Array类型

js中的数组与其他多数语言中的数组有着相当大的区别。虽然js中的数组与其他语言中的数组都是数据的有序列表,但是与其他语言不同的是:

1.js中的数组每一项都可以保存任何类型的数据。

2.js数组大大小可以动态调整的。

2.array的栈方法LIFO,js中的数组提供了一种让数组的行为类似于其他数据结构的方法。具体来说,数组可以表现的酒香栈一样,后者是一种可以限制插入和删除项的数据结构。js为数组专门提供了push()和pop()方法,一遍实现类似栈的行为。

push()方法可以接受任意数量的参数,把他们组个添加到数组末尾,并返回修改后数组的长度。而pop()方法则从数组的末尾移除最后一项,减少数组的length值,然后返回移除的项。

3.与栈方法相对应的是队列方法。array的队列方法是模仿队列的数据结构的访问规则FIFO(first in first out)。也是通过push方法来向数组末端添加项目。使用shift()方法来从数组前端取出第一个项目。同时将输出长度减少1.

js中的数组还有一个unshift()方法,unshift()与shift()的用法相反。它能在数组前端添加人一个项,并返回新数组的长度。使用unshift()方法和pop()方法可以反方向来模拟队列。在数组前端添加项目,在数组厚点移除项目。

5.重排序方法

reverse()和sort()方法。sort()方法可以按自定义的方式进行排序,有点类似C#中的ICampare的用法,即你自己要写一个排序规则函数,sort()方法再来调用你所写的排序函数。

eg1:

1 var values = [0,1,5,10,15];
2 values.sort();
3 alert(values);    //0,1,10,15,5

sort()默认排序

默认排序是根据字符的顺序来进行排序。但是不符合我们的要求。

 1 function compare(value1,value2){
 2     if(value1 < value2){
 3         return -1;
 4     }else if(value1 > value2){
 5         return 1;
 6     }else{
 7         return 0;
 8     }
 9 }
10
11 var values = [0,1,5,10,15];
12 values.sort(compare);
13 alert(values);    //0,1,5,10,15;

View Code

对于数值类型或者其alueOf()方法返回数值类型的对象类型,可以使用一个更简单的比较函数。

1 function compare(value1,value2){
2      return value2 - value1;
3 }

更简单的方法

第五章小结

1.引用类型与传统面向对象中的类相似,但实现不同;

2.Object类是一个基础类型,其他所有类型都从Object继承了基本的行为;

3.array类型是一组值的有序列表,同时还提供了操作和转换这些值的功能;

4.Date类型提供了有关日期和时间的信息,包括当前日期和时间以及相关的计算功能;

5.RegExp类型是js支持正则表达式的一个接口,提供了最基本的和一些高级的正则表达式功能;

6.函数实际上也是Function类型的实例,因此函数也是对象;而这一点正是js最具特点的地方,由于函数是对象,所以函数也拥有方法,可以用来增强其行为;

7.因为有了基本包装类型,所以js中的基本类型值可以当作对象来访问。三种基本包装类型分别是:boolean、number和string,以下是他们共同的特征:

(1)每个包装类型都映射到同名的基本类型;

(2)在读取模式下访问基本类型值时,就会创建对应的基本包装类型的一个对象,从而方便了数据操作

(3)操作基本类型值的语句一经执行完毕,就会立即销毁新创建的包装对象。

所有代码执行之前,作用域中及已经存在两个内置对象:Global和Math。

转载于:https://www.cnblogs.com/353373440qq/p/3556741.html

js学习笔记 chapter5 引用类型相关推荐

  1. JS学习笔记(五)函数类型、箭头函数、arguments参数、标签函数

    JS学习笔记(五) 本系列更多文章,可以查看专栏 JS学习笔记 文章目录 JS学习笔记(五) 一.函数 1. 函数定义 2. 方法( 对象 + 函数 ) 二.函数参数及返回值 1. 传递原始类型参数 ...

  2. JS学习笔记(九)深拷贝浅拷贝【Array、Object为例】

    JS学习笔记(九) 本系列更多文章,可以查看专栏 JS学习笔记 文章目录 JS学习笔记(九) 一.赋值&复制 二.浅拷贝(shallow copy) 1. 什么是浅拷贝 2. 数组的浅拷贝 ( ...

  3. 唤醒手腕 - 前端服务器端开发 Node.Js 学习笔记(学习中,更新中)

    唤醒手腕 - Node.Js 学习笔记 唤醒手腕个人的学习记录,时间在2021年12月13日 ~ 2021年12月14日,学习方式看官方文档和B站视频,如有错误或者代码问题的地方,欢迎C站大佬能够帮忙 ...

  4. ArcGIS JS 学习笔记4 实现地图联动

    原文:ArcGIS JS 学习笔记4 实现地图联动 1.开篇 守望屁股实在太好玩了,所以最近有点懒,这次就先写个简单的来凑一下数.这次我的模仿目标是天地图的地图联动. 天地的地图联动不仅地图有联动,而 ...

  5. backbone.js学习笔记

    backbone.js学习笔记 之前只接触过jQuery,看来Backbone是除了jQuery的第二大JS框架... backbone到底是个啥? 其实刚开始我也不知道=_=,我是这周二才听说居然还 ...

  6. node.js学习笔记

    # node.js学习笔记标签(空格分隔): node.js---## 一 内置模块学习 ### 1. http 模块 ``` //1 导入http模块 const http =require('ht ...

  7. node.js学习笔记14—微型社交网站

    node.js学习笔记14-微型社交网站 1.功能分析 微博是以用户为中心,因此需要有注册和登录功能. 微博最核心的功能是信息的发表,这个功能包括许多方面,包括:数据库访问,前端显示等. 一个完整的微 ...

  8. WebGL three.js学习笔记 6种类型的纹理介绍及应用

    WebGL three.js学习笔记 6种类型的纹理介绍及应用 本文所使用到的demo演示: 高光贴图Demo演示 反光效果Demo演示(因为是加载的模型,所以速度会慢) (一)普通纹理 计算机图形学 ...

  9. html 流程控制,HTML5独家分享:原生JS学习笔记2——程序流程控制

    当当当当 .....楼主又来了!新一期的js学习笔记2--程序流程控制更新了! 想一键获取全部js学习笔记的可以给楼主留言哦! js中的程序控制语句 常见的程序有三种执行结构: 1.顺序结构 2.分支 ...

最新文章

  1. Grpc+Grpc Gateway实践二 有些复杂的Hello World
  2. 自定义用户验证控件CustomValidator
  3. 机器学习中有哪些距离度量方式
  4. iOS:实现邮件和短信发送的简单示例
  5. 在Delphi中获取和修改文件的时间
  6. 11-6缓存雪崩优化
  7. MyBatis——MyBatis Generator插件使用(配置详解)
  8. 洛谷试炼场 计数问题
  9. python google 搜索结果爬取_对于 Python 抓取 Google 搜索结果的一些了解
  10. python 循环语句 教学设计_pythonwhile循环教案
  11. 交通灯系统设计 educoder实训项目 logisim实现
  12. QT The inferior stopped because it received a signal from the operating system.
  13. 计算机逻辑函数,计算机智能化简多变量逻辑函数的算法分析
  14. 在树莓派上安装麦克风监测音量
  15. 深入解读云场景下的网络抖动
  16. Prim算法java实现
  17. springboot(入门后进阶)启动-事件-事件监控-系统参数
  18. ORACLE中的LTRIM、RTRIM和TRIM
  19. Matlab通过串口与下位机通讯
  20. python 相对路径和绝对路径的区别

热门文章

  1. MPLS(多协议标记交换)协议能否降低跨省组建企业专网的成本?
  2. 转载:什么是良好的Verilog代码风格?(作者KellenWang)
  3. ArcGIS——图形转要素(标注转注记后发布服务问题)
  4. Starling GodRay 效果实现
  5. 使用PagedDataSource类实现分页
  6. python str转json_Python中如何将一个字符串转换为json格式呢?
  7. 中转换成list集合_Java集合、数组与泛型中的几个陷阱,你掉进了几个?
  8. MySQL添加唯一约束和联合唯一约束(建表后添加)
  9. java split 实现_PL/SQL实现JAVA中的split()方法的例子
  10. 使用函数式编程方式-递归