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

【js中的数组】
1、数组的基本概念?
数组是在内存空间中连续存储的一组有序数据的集合
元素在数组中的顺序,称为下标。可以使用下表访问数字的每个元素。

2、如何声明一个数组?
① 使用字面量声明:
在js中,同一数组可以存储各种数据类型。
例如:var arr=[1,"撒",true,4,func,{},null];
② 使用new关键字声明:var arr=new Array(参数);
>>>参数可以是:
a.参数省略,表示创建一个空数组;
b.参数为一个整数,表示声明一个length为指定长度的数组。但是这个length随时可变可追加;
c.参数为逗号分隔的多个数值。表示数组的多个值;
new array(1,2,3)==[1,2,3]
3.数组中元素的读写/增删?
① 读写:通过下表访问元素。 下标从0开始 arr[1]="haha";
② 增删:

删: a.使用delete关键字,删除数组的某一个值。删除之后,数组的长度不变,对应得位置变为Undefined。
eg:delete arr[1]。
b.arr.pop():删除数组的最后一个值。相当于 arr.length-=1。

c.arr.shift():删除数组的第一个值。

增: d.arr.unshift(值):在数组的第0个位置增加一个值。
e.arr.push(值):在数组的最后一个位置新增一个值;
f.直接访问数组没有达到的下标,可以动态追加。
arr[100]=1;中间如果有空余下标,将存入Undefined。

4、数组中的其他方法(非常非常常用!!!!面试题特爱考!!!尤其是sort)

①join():将数组用指定分隔符链接为字符串。当参数为空时,默认用逗号分隔。
②concat():[原数组不会被改变] 将数组,与两个或多个数组的值链接为一个新数组。
concat连接时,如果有二维数组,则至多能拆一层[]
eg: [1,2].concat([3,4],[5,6]); -->[1,2,3,4,5,6]
[1,2].concat([3,4,[5,6]]); -->[1,2,3,4,[5,6]]
③push():在数组最后增加一个,unshift():数组开头增加一个。 -->返回新数组的长度;
pop():在数组最后删除一个,shift():数组开头删除一个。 -->返回被删除的值;
[上述方法,均会改变原数组]

④reverse():[原数组被改变]将数组翻转,倒叙输出。
eg: var arr = [1,2,3,4,5,6,7,8];
arr.reverse();
console.log(arr);
⑤slice(begin,end):[原数组不会被改变]截取数组中的某一部分,并返回截取的新数组。

>>>传入一个参数,表示开始区间,默认将截到数组最后;
>>>传入两个参数,表示开始和结束的下标,左闭右开区间(包含begin,不包含end);
>>>两个参数可以为负数,表示从右边开始数,最后一个值为-1;
⑥sort():[原数组被改变]将数组进行升序排列;
>>>默认情况下,会按照每个元素首字母的ASCII值进行排序;
eg:[1,5,13,12,7,6,4,8].sort() -->[1,12,13,4,5,6,7,8];
>>>可以传入一个比较函数,手动指定排序的函数算法;
函数将默认接收两个值a,b,如果函数返回值>0,则证明a>b,如果函数返回值<0,则证明a<b
arr.sort(function(a,b){
return a-b; //升序排列;
return b-a; //降序排列;
});
⑦indexOf(value,index):返回数组中第一个value值所在的下标,如果没有找到则返回-1;
lastIndexOf(value,index):返回数组中最后一个value值所在的下标,如果没有找到则返回-1;
>>>如果没有指定index,则表示全数组查找value;
>>>如果指定了index,则表示从index开始,向后查找value;

⑧forEach():专门用于循环遍历数组。接收一个回调函数,回调函数接收两个参数,第一个参数为数组的每一项的值,第二个参数为下标
(IE8之前,不支持此函数!!!!!)
var arr = [1,5,6,3,4,2,7,6,4,8];
arr.forEach(function(item,index){
console.log(item);
})
⑨map():数组映射,使用方式与forEach()相同。不同的是,map可以有return返回值,表示将原数组的每个值进行操作后,返回给一个新数组。
(IE8之前,不支持此函数!!!!!)
var arr1 = arr.map(function(item,index){
console.log(item);
return item+2;
});
console.log(arr1);

5、二维数组与稀疏数组(了解)
①二维数组:数组中的值,依然是一个数组形式。
eg:arr=[[1,2,3],[4,5,6]]; //相当于两行三列
读取二维数组:arr[行号][列号];
②稀疏数组:数组中的索引是不连续的。(length要比数组中实际的元素个数大)

6、基本数据类型和引用数据类型:
①基本数据类型:赋值时,是将原变量中的值,赋值给另一个变量,复制完成后,两个变量相互独立,修改其中一个的值,另一个不会变化。
②引用数据类型:赋值时,是将原变量在内存中的地址,赋值给另一个变量。赋值完成后,两个变量中存储的是同一个内存地址,访问的是同一份数据,
其中一个改变另一个也会发生变化。
③ 数值型、字符串、布尔型等变量属于基本数据类型;
数组,对象属于引用数据类型;

 内置对象

Boolean类
有两种声明方式:
可以使用字面量方式声明一个单纯的变量:用typeof检测为Boolean类型
也可以使用new Boolean()声明一个Boolean类型的对象。用typeof检测为Object类型。

Number.MAX_VALUE 返回Number类可表示的最大值
Number.MIN_VALUE 返回Number类可表示的最小值

.toString();将数值类型转换为字符串类型
eg:var str = num1.toString();
.toLocaleString();将数值按照本地格式顺序转换为字符串,一般从右开始,三个一组加逗号分隔;

String 类
1、 属性:str.length 返回字符串的长度,字符数
字符串支持类似数组的下标访问:str[0];
2、方法:
.toLowerCase();将字符串所有字符转成小写
.toUpperCase();将字符串所有字符转成大写
.charAt(n);截取数组的第n个字符,相当有str[n]
.indexOf("str",index);从index位置开始,查找子串在字符串的位置 ,如果没有找到返回-1,其他从数组的indexOf方法;
.lastIndexOf();同数组
.substring(bengin,end);从字符串中截取子串
只传入一个参数,表示从begin开始到最后;
传入两个参数,表示begin到end的区间,左闭右开
.split("分隔符");将字符串以指定分隔符分隔,存入数组中,传入空""表示将字符串的每一个字符分开放入数组;
.replace("old","new");将字符串中的第一个old替换为new。
第一个参数,可以是普通字符串,也可以是正则表达式;
如果是普通的字符串,则只替换第一个old,如果是正则表达式,则可以根据表达式的写法要求,进行替换。

date 日期类
 1、new Date():返回当前最新时间
 new Date("2017,8,31,12:34:56");返回指定时间
 2、常用方法:
 .getFullYear():获取4位年份
 .getMonth():获取月份 0-11
 .getDate():获取一个月中的第几天 1-31
 .getDay():获取一周中的第几天 0-6,0表示周天
 .getHours():获取小时
 .getMinutes():获取分钟
 .getSeconds():获取秒

eg:var str = num1.toLocaleString();
.toFixed(n);将数字保留n为小数,并转为字符串格式
eg:var str = num1.toFixed(2);
.toPrecision(n);将数字格式化为指定长度,n表示不含小数点位数长度,如果n<原数字长度,则用科学计数法表示。如果n>原数字长度,则小数点后补0;
eg:var str = num1.toPrecision(2);
.valueOf();返回Number对象的基本数字值;

【自定义对象】
1.基本概念
① 对象:对象是拥有一系列无序属性和方法的集合。
② 键值对:对象中的数据是以键值对的方式存在。对象的每个属性和方法,都对应值一个键名,以键取值。
③ 属性:描述对象特征的一系列变量,称为属性。【对象中的变量】
④ 方法:描述对象行为的一系列函数,称为方法。【对象中的函数】

2.对象的声明
① 字面量声明:var obj={
key1:value1,
key2:value2,
func1:function(){}
}
>>>对象中的数据是以键值对形式存储,键与值之间用:分隔。
对各键值对之间用,分隔。
>>>对象中的键,可以是除了数组/对象以外的任何数据类型。但是,一般只用普通变量名作为键。
>>>对象中的值,可以是任何数据类型,包括数组和对象。
② 使用new关键字声明:var obj=new Object();
var.key1=value1;
obj.func=function(){}

3.对象中属性和方法的读写:

① .运算符:对象名.属性 对象名.方法();
对象内部:this.属性 this.方法()
对象外部:对象名.属性 对象名.方法()
② 通过["key"]调用:对象名.["属性名"] 对象名.["方法名"]();
>>>如果键中包含特殊字符,只能使用第②种方式;
>>>对象中直接写变量名,默认为调用全局变量。如果需要调用对象自身的属性或者方法。
需要使用对象名.属性,或者this.属性。
person.age this.age 都可以,但推荐使用this关键字。
③ 删除对象的属性和方法:delete 对象名.属性名/方法名
delete person.age;

时间: 2024-10-08 01:06:49

js数组、内置对象、自定义对象的相关文章

【Unity】3.1 利用内置的3D对象创建三维模型

分类:Unity.C#.VS2015 创建日期:2016-04-02 一.基本概念 Unity已经内置了一些基本的3D对象,利用这些内置的3D对象就可以直接构建出各种3D模型(当然,复杂的三维模型还需要借助专业建模软件来完成). Unity 5.3.4内置的3D对象有: Cube:立方体 Sphere:球体 Capsule:胶囊体. Cylinder:圆柱体. Plane:平面. Quad:四方格. Ragdoll:布娃娃系统. Terrain:地形. Tree:树. Wind Zone:风.

js常用内置对象、Dom对象、BOM对象

11.html元素事件属性中,如onclick="",双引号里可以是方法条用,可以是js代码(无需加<script>标签) 12.JavaScript内置 对象.属性和方法(您也应该避免使用 JavaScript 内置的对象.属性和方法的名称作为 Javascript 的变量或函数名):Array     Date     eval     function     hasOwnPropertyInfinity     isFinite     isNaN     isPr

JS所有内置对象属性和方法汇总

JS三大对象 对象,是任何一个开发者都无法绕开和逃避的话题,她似乎有些深不可测,但如此伟大和巧妙的存在,一定值得你去摸索.发现.征服. 我们都知道,JavaScript有3大对象,分别是本地对象.内置对象和宿主对象. 在此引用ECMA-262(ECMAScript的制定标准)对于他们的定义: 本地对象 与宿主无关,独立于宿主环境的ECMAScript实现提供的对象. 简单来说,本地对象就是 ECMA-262 定义的类(引用类型). 这些引用类型在运行过程中需要通过new来创建所需的实例对象. 包

js常用内置对象及方法

在js中万物皆对象:字符串,数组,数值,函数...... 内置对象都有自己的属性和方法,访问方法如下: 对象名.属性名称: 对象名.方法名称 1.Array数组对象 unshift( )    数组开头增加 功能:给数组开头增加一个或多个 参数:一个或多个 返回值:数组的长度 原数组发生改变 shift( )        数组开头删除一项 功能:给数组开头删除一个 参数:无 返回值:被删除的内容 原数组发生改变 push( )       数组末尾增加 功能:给数组末尾增加一项或多项 参数:一

js的内置对象

内置对象: 一.Array数组: 创建数组有三种类似的方法,跟其他语言也没多少区别 1)直接通过new 与Array的构造函数进行实例化,不带有参数 var array=new Array(); 2)带有参数 var array=new Array(2,3,4,'22'); 改数组跟as很想属于稀疏数组,可以添加任意类型的元素,可以重复,可以间隔添加. 3)指定数组大小 var array=new Array(20); 只带有参数只有一个数字的array,那么数组的大小就是20,如果添加的不是数

ES6新特性:Javascript中内置的延迟对象Promise

Promise的基本使用: 利用Promise是解决JS异步执行时候回调函数嵌套回调函数的问题, 更简洁地控制函数执行流程: 通过new实例化Promise,  构造函数需要两个参数, 第一个参数为函数执行成功以后执行的函数resolve, 第二个函数为函数执行失败以后执行的函数reject: new Promise(function(resolve , reject) { }); 通过Promise,我们把回调函数用线性的方式写出来,而不是一层套一层, 这个函数有四层回调: fn("args&

Lucene中内置常用Query对象

以下这几种lucene内置查询对象,不过在实际的项目开发中,这种查询方式应用的不多.一般用QueryParser去获取查询对象.因为QueryParser内部基本实现了所有的内置查询对象. 这是最常见的QueryParse的写法 /** * 通过QueryParser去获取查询对象 * * @throws ParseException */ @Test public void searchByQueryParse() throws ParseException { // 1创建QueryPars

JS中的如何构造自定义对象

一.对象是什么及组成及使用方法: 1.对象是种特殊的数据结构,结合了数据与依据数据行动的程序代码. 2.实际上,对象只是结合成单一结构体的变量和函数. 3.当变量被放在对象中时,它称为特性:当函数被放在对象中时,它被称为方法. 4.引用特性和方法时需提供对象的名称,后随点号运算符,再接上特性或方法的名称. 二.构造函数负责创建对象: 既然对象具有相关的数据,数据便需在对象创建时初始化,此时需要一个特殊的方法——构造函数(constructor),来为对象准备运行.每个对象都需要自己的构造函数,其

JSP的 内置九大对象

我们以前用到的对象都是用 new 调用构造方法获得的,而在 JSP 中提供了 9 个不需要 new 实例化的对象,我们把它叫做内置对象或者隐藏对象,它们分别是 pageContext.request.response.session.application.config.out.page.exception. 1. request 内置对象 zaiWeb开发中, request 内置对象十分重要,用到的频率很多. request 对象的作用:接收客户端发送来的信息. 它的方法主要有: 2. re

js 数组循环删除元素或对象

1.根据不同条件,删除数组中的元素或对象 for(var i=0,flag=true,len=attrList.length;i<len;flag ? i++ : i){ if(attrList[i] && (attrList[i].attrId=='530' || attrList[i].attrId=='534' || attrList[i].attrId=='9')){ attrList.splice(i,1); flag = false; } else { flag = tr