[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. cp复制文件到多个目录下及强制覆盖

    工作中有遇到要把一个文件拷贝到N个文件夹下,但是cp又没有这样的命令,怎么办,这时需要编写一个脚本,首先做实验如下: [root@host1 ~]# mkdir test [root@host1 ~] ...

  2. Json及Json字符串

    JSON(JavaScript Object Notation)是一种独立于开发语言的用于存储和交换文本数据的格式,JSON 语法是JavaScript 语法的子集. Json 可以保存数组格式和对象 ...

  3. Linux下Samba服务器的安装和配置

    第一步:sudo apt-get install samba smbclient 安装samba服务器. 第二步:打开/etc/samba/smb.conf文件,在末尾添加下面的字段: [用户名] c ...

  4. 002---第一个Hibernate示例

    Hibernate压缩文件结构 下载Hibernate压缩文档,下面为文件结构: Hibernate3.jar:为Hibernate的核心jar包: build.xml:重新打包配置文件 build. ...

  5. Smart.coder每日站立会议08

    站立会议内容: 完善小程序的查找功能,打算考虑一下信息自动输入分类的功能. 1.站立会议照片: 2.任务展板 3.燃尽图

  6. countDownLatch和cyclicBarrier

    < Effecit In Java >说过,从java 1.5发现版本开始, 就不建议使用wait和notify,它们使用比较困难,可以使用更高级并发工具来替代. 图一所说的同步器是指那些 ...

  7. Cohort Analysis and LifeCycle Grids mixed segmentation with R(转)

    This is the third post about LifeCycle Grids. You can find the first post about the sense of LifeCyc ...

  8. VR全景智慧城市——宣传再华丽,不如用户亲身参与

    在当今社会上,VR和AI已经成为黑科技的代名词了.同样都是很热门的科技,但是它们的出场方式却差距不小.AI的出场方式是很有科技范,而VR的出场方式却是土豪气十足. 营销是什么,是通过制造爆点,用爆点实 ...

  9. CI Weekly #20 | 从持续集成的角度看 “云” 的价值

    很多移动开发工程师对 fastlane 耳熟能详,最近 flow.ci 的 iOS 工作流「编译」这步已采用 fastlane gym 工具(iOS 应用打包签名自动化),进一步优化了构建打包速度.快 ...

  10. 前端向后台的华丽转身 — PHP入门篇

    三个月就这么悄悄溜走了,本K对于前端虽然有了一定的认识,但对一些方面还是处于一种比较萌币的状态,就在这种萌币状态下,本K又跟着大神浩开始了后台语言-PHP语言的学习.PHP的学习对于学过其他语言的人来 ...