[JS中的数组]

1、数组的概念:数组是在内存中连续存储多个有序元素的结构
元素的顺序,称为下标,通过下标查找对应元素。

2、数组的声明:
 ① 字面量声明: var arr1 = [];
JS中同一数组,可以储存多种不同的数据类型(但一般同一数组只用于存放同种数据类型):
例如:var arr1 = [1,"2",true,{"name":"jianghao"},[1,2]];

 ② new关键字声明: var arr2 = new Array(参数);
 >>> 参数可以为:
a.为空: 声明一个,没有指定长度的数组;
 b.数组的length:声明一个指定长度的数组,但是数组的长度随时可变可追加,最大长度为0-(2^32-1);
 c.数组默认的N个值: new Array(1,"2",true); 相当于[1,"2",true]

 3、数组中元素的读写/增删:
 ① 读写:通过下标来访问元素,例如 arr[2];
 ② 增删:delete arr[n]; 删除数组第n+1个值,但数组长度不变,对应位置值为Undefined
 arr3.push(值); 数组最后增加一个值,相当于arr3[arr3.length] = 7;
 arr3.unshift(值); 数组的第0位插入一个值,其余位数顺延;
 arr3.pop(); 删除数组最后一位,与delete不同的是,pop执行后数组长度也会减少一个; 相当于 arr.length-=1;
arr3.shift(); 删除数组第0位,长度也会减一;

 4、数组中其他常用方法:
 ① join("分隔符"); 将数组用指定分隔符分隔,链接为字符串。参数为空时,默认用逗号分隔;
 ② concat(); 【原数组不被改变】将数组,与多个数组的值链接为新的数组;
 [1,2].concat([3,4],[5,6]) =[1,2,3,4,5,6]; //连接时,中括号至多拆一层
 [1,2].concat([1,2,[3,4]]) =[1,2,1,2,[3,4]];//多层中括号,以二维数组形式存在

 ③ push(): 数组最后增加数; unshift(): 数组开始增加一个数 【返回数组新的长度】
 pop(): 删除数组最后一个; shitf():删除数组第一个 【返回被删除的值】
 【调用上述方法,原数组均被改变】

 ④ recerse(): 【原数组被改变】数组翻转,逆序排列。

 ⑤ slice(begin,end):【原数组不会被改变】 截取数组中的某一部分,成为新数组
 >>> 传递一个参数:默认为begin index,当这个开始,截到最后一个;
 >>> 传递两个参数:截取从begin到end区间,左闭右开(包含begin,不含end);
 >>> 参数可以为负数,-1表示最后一个;

⑥ sort(function): 【原数组会被改变】 对数组进行排序;
 >>> 不指定排序函数: 按照数值的ascii码值进行排练;
 >>> 传入排序函数:默认两个参数a,b,如果返回值>0,则a>b;反之返回值<0,则a<b
 arr3.sort(function(a,b){
    //return a-b; // b在前,a在后(升序排列)
return b-a; // a在前,b在后(降序排列)
});

 ⑦ indexOf(value,index): 返回数组中第一个value值对应的下标位置,若未找到返回-1
 lastIndexOf(value,index):返回最后一个value值对应的下标位置,。。。。。。
 >>> 若未指定index参数:默认在数组所有所有元素中查询;
 若指定index参数:则从当前index开始,向后查询;

 5、二维数组&稀疏数组(了解):
① 稀疏数组:数组并不含有从0开始到length-1的所有索引(length值比实际元素个数多);
② 二维数组: var arr = [[1,2],[3,4],[5,6]]; //相当于三行两列的矩阵
取出二维数组元素: arr[行号][列号]; // 可使用嵌套循环遍历

 6、 引用数据类型&基本数据类型:
 引用数据类型:(数组/对象)赋值时,是将原变量的地址,赋给新变量。两个变量,实际上操作的是同一份数据,所以,修改其中一个变量,另一个跟着变化;
 基本数据类型:赋值时,是将原变量的值,赋值给新的变量。两个变量,属于不同的内存空间,修改其中一个,互不干扰;

【内置对象】

Number类

 Number.MIN_VALUE 可表示的最小数
 Number.MAX_VALUE 可表示的最大数
 .toString():将数字转为字符串,相当于 num+""
 .toFixed(n):将数字转为字符串,保留n位小数,四舍五入
 .valueOf():返回Number对象的基本数字值
 .toLocaleString():将数字按照本地格式的顺序转为字符串。一般,三个一组加逗号
 .toPrecision(n):将数字格式化为指定长度,n=不含小数点的所有位数和

字符串String
 1、属性:str.length 返回字符串的长度
 2、方法:
 .toLowerCase() 所有字符转为小写;
 .toUpperCase() 所有字符转为大写;
 .charAt(n) 截取字符串中第n个字符
 .indexOf("查询子串",index) 查询从index开始的,第一个子串的索引。没找到返回-1,同数组的indexOf()方法;
 .substring(begin,end) 截取子串
 >>> 只写一个参数:从begin开始,到最后
 >>> 写两个参数:从begin开始,到end。左闭右开。
 .replace("old","new") 将字符串中,第一个old,替换为new。第一个参数可以为普通字符串,也可以为正则表达式(普通字符串将只匹配第一个,正则表达式则根据具体情况区分)。
 .split("") 将字符串,通过制定分隔符分为数组。传入""空字符串,将把单个字符存入数组

Date类
1、 new Date(); 拿到当前最新时间;
 new Date("2017,4,4,14:58:12") 设置指定时间
 2、常用方法:
 .getFullYear(): 获取4位年份
 .getMonth(): 获取月份 0~11
 .getDate(): 获取一月中的某一天 1~31
 .getDay(): 获取一周中的某一天 0~6
 .getHours() 返回 Date 对象的小时 (0 ~ 23)
 .getMinutes() 返回 Date 对象的分钟 (0 ~ 59)
 .getSeconds() 返回 Date 对象的秒数 (0 ~ 59)

JS数组及内置对象的更多相关文章

  1. js数组、内置对象、自定义对象

    [js中的数组] 1.数组的基本概念? 数组是在内存空间中连续存储的一组有序数据的集合 元素在数组中的顺序,称为下标.可以使用下表访问数字的每个元素. 2.如何声明一个数组? ① 使用字面量声明: 在 ...

  2. JS中的内置对象简介与简单的属性方法

    JS中的数组: 1.数组的概念: 数组是在内存中连续存储的多个有序元素的结构,元素的顺序称为下标,通过下标查找对应元素 2.数组的声明: ①通过字面量声明var arr1 = [,,,,] JS中同一 ...

  3. js中的内置对象(还没怎么看)

         在js里,一切皆为或者皆可以被用作对象.可通过new一个对象或者直接以字面量形式创建变量(如var i="aaa"),所有变量都有对象的性质.注意:通过字面量创建的对象在 ...

  4. js中的内置对象

    在js里,一切皆为或者皆可以被用作对象.可通过new一个对象或者直接以字面量形式创建变量(如var i="aaa"),所有变量都有对象的性质.注意:通过字面量创建的对象在调用属性和 ...

  5. javascript数组的内置对象Array

    javascript的内置对象Array是用于构造数组的全局对象,数组是类似于列表的高阶对象. 创建数组的方法: 1通过字面量:var arr = [1,2,3]; 里面的参数直接作为数组里的值 2通 ...

  6. JS基础语法---内置对象

    js学习中三种对象: 内置对象----js系统自带的对象 自定义对象---自己定义的构造函数创建的对象 浏览器对象---BOM的时候讲 内置对象: Math Date String Array Obj ...

  7. JS高级---为内置对象添加原型方法

    为内置对象添加原型方法 我们能否为系统的对象的原型中添加方法, 相当于在改变源码   我希望字符串中有一个倒序字符串的方法 //我希望字符串中有一个倒序字符串的方法 String.prototype. ...

  8. JS高级——扩展内置对象的方法

    基本概念 内置对象有很多,几个比较重要的:Math.String.Date.Array 基本使用 1.内置对象创建出来的对象使用的方法使用的其实都是内置对象的原型对象中的方法 (1)a并没有charA ...

  9. JS重要的内置对象

    Array对象: 属性: .length      获得数组的长度: 方法: .concat() 连接内容或者数组,组成新的数组: .join(n)  用n连接数组的每一项组成字符串,可以是空字符串: ...

随机推荐

  1. Jenkins 远程构建任务

    开发过程中提交代码以后,如何不登录Jenkins就自动触发jenkins 任务来发布软件版本. 1.首先我们创建一个Jenkins任务. 2.选择"构建触发器"->勾选&qu ...

  2. struts2.3.23升级到struts2.3.32

    新的漏洞 3月8号去审计厅培训系统的使用,那边计算机中心的负责人递过来一张如下图所示的文档,意思是发现了struts2的漏洞,需要进行修复. 在培训前,我登录到服务器中,看到了项目中,所有的服务器中应 ...

  3. 四、 添加模型Model(ASP.NET MVC5 系列)

    在这一章节中我们将添加一些classes类来管理数据库中的movies.这些classes类就是ASP.NET MVC应用程序中的"model". 我们将用.NET框架中的数据访问 ...

  4. ReactNative学习之Html基础

    前言: React Native开发作为一种新型的移动开发方式,个人觉得App的一部分需求会逐步替换成这种方式,也是公司移动开发人员所必须掌握的一种开发技术,所以鉴于这种情况我觉得很有必要学习一下,特 ...

  5. Java之枚举

    1.定义 enum 是一种数据类型,与 全局常量比较相似,都是全局的并且是可以通过类名调用的 与全局常量区别 枚举功能更强大,可以有属性和方法 枚举比全局常量更加的规范 2.枚举特性 1)可以有属性以 ...

  6. Java文件流之练习

    1 )将"今年是反法西斯胜利70周年,举国欢庆,所以要放假啦" 字符串 使用文件字符输出流 写入到oldhappy.txt文件中,复写10000行, 要求换行 在文件的开头写入当前 ...

  7. FTP主动模式和被动模式的区别

    基础知识: FTP只通过TCP连接,没有用于FTP的UDP组件.FTP不同于其他服务的是它使用了两个端口, 一个数据端口和一个命令端口(或称为控制端口).通常21端口是命令端口,20端口是数据端口.当 ...

  8. 在.net下打造mongoDb基于官方驱动最新版本

    还是一如既往先把结构图放出来,上上个版本添加了redis的缓存,但是不满足我的需求,因为公司有项目要求是分布式所以呢,这里我就增加了mongoDb进行缓存分布式,好了先看结构图. 总的来说比较蛋疼,因 ...

  9. std::cin>>

    cin>> 不吃最后的回车换行,字符串自动补'\0'与最后回车换行无关 时常忘记,紧记!

  10. servlet与Javabean之间的区别

    在JSP中调用JAVA类和使用JavaBean有什么区别? 可以像使用一般的类一样使用JavaBean,Bean只是一种特殊的类.特殊在可以通过<jsp:useBean/>调用JavaBe ...