JS中的内置对象
Posted Tracey_W
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS中的内置对象相关的知识,希望对你有一定的参考价值。
JS中的数组
1、数组的基本概念?
数组是在内存空间中连续存储的一组有序数据的集合。
元素在数组中的顺序,称为下标。可以使用下标访问数组的每个元素。
2、如何声明一个数组?
① 使用字面量声明:var arr = []; // 声明了一个空数组
【注】在JS中,同一数组,可以存储各种数据类型
② 使用new关键字声明:var arr = new Array(参数);
参数:a. 省略 表示创建一个空数组;
b. 整数 表示声明一个length为指定长度的数组。 但是这个length可以随时可变可增加,即数组的长度可变可增加。
c. 参数为逗号分隔的多个数值,表示数组的多个值。new array(1,2,3) == [1,2,3];
3、数组中,元素的读写/增删?
① 读写:通过下标访问元素,下标从0 开始。eg. arr[1] = "haha";
② 增删:
a. 使用delete关键字, 删除数组中的某一个值,删除后数组的长度不变,对应位置变为undefined。 eg.delete arr[1]; // 删除数组中的某一个值
b. arr.pop(); 删除数组中的最后一个值。相当于 arr.length -= 1;与delete的区别:数组长度-1
c. arr.shift(); 删除数组中的第一个值。
d. arr.unshift(值); 在数组开头(第0个位置)新增一个值。
e. arr.push(值); 在数组最后一个位置新增一个值。
f. 直接访问数组没达到的下标,可以动态追加。arr[100] = 1; 中间如果有空余下标,将存入undefined。
4、数组中的其他方法(函数)
① 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]]
③ arr.push(值) :数组最后增加一个;
arr.unshift(值): 数组开头增加一个 —— 返回新数组的长度;
arr.pop():数组最后删除一个;
arr.shift(): 数组开头删除一个 —— 返回被删除的值;
【上述方法 都会改变原数组】
④ reverse():原数组被改变。将数组翻转,倒序输出。
⑤ arr.slice(begin,end):原数组不会被改变。截取数组中的某一部分,并返回截取的新数组。
传入一个参数,表示开始区间,默认截取到数组最后;
传入两个参数,表示开始和结束的下标,左闭右开(包含begin, 不包含end)
两个参数可以为负数,表示从右边开始数,最后一个值为-1
⑥ sort():原数组被改变 ,将数组进行升序排列。
1) 默认情况下,会按照每个元素首字母的ASCII码值进行排序;[3,1,5,12].sort(); -> [1,12,3,5]
2) 可以传入一个比较函数,手动指定排序的函数算法;函数默认接收两个值a,b 如果返回值>0,则证明a>b
arr.sort(function(a,b){
return b-a; //降序排列
return a-b; //升序排列
});
⑦ IndexOf(value,index):返回数组中第一个value值所在的下标,如果没有找到返回-1;
lastIndexOf(value,index):一个value存在多个的情况下,返回数组中最后一个value值所在的下标,如果没有找到返回-1;
如果没有指定 index,则表示在整个数组中查找 value
如果指定了index,则表示从index开始,向后查找value
⑧ forEach():专门用于循环遍历数组。接收一个回调函数,回调函数可以接收两个参数,
第一个参数为数组每一项的值,第二个参数为数组的下标。【IE8之前不支持】
arr.forEach(function(item,index){
console.log(item);
});
⑨ map():数组映射。使用方式与forEach()相同。与forEach()不同的是,map可以有return返回值,表示将原数组的每个值进行操作,返回一个新数组
var arr0 = arr.map(function( item,index ){ //数组映射 返回一个新数组
console.log(item);
return item-1;
});
⑩ .splice(no-1,1);插入、删除、替换(第三个参数)数组中的元素。
5、二维数组与稀疏数组(了解)
① 二维数组:数组中的值依然是一个数组形式 。
eg. arr var a = [[1,2,3],[3,4,5]]; //两行三列
读取二维数组:a[行号][列号]
② 稀疏数组:数组中的索引是不连续的。(length要比数组中实际的元素个数大)
基本数据类型&引用数据类型
① 基本数据类型:赋值时,是将元变量中的值,赋值给另一个变量。赋值完成后,两个变量相互独立,修改其中一个值,另一个不会变化。
② 引用数据类型:赋值时,是将原变量在内存中的地址,赋值给另一个变量。赋值完成后,两个变量中存储的是同一个内存地址,访问的是同一份数据,修改其中一个值,另一个也会改变。
③ 数值型、字符串型、布尔型等变量属于基本数据类型;
数组、对象属于引用数据类型。
其他内置对象
1、boolean 类
两种声明方式:可以使用字面量方式声明一个单纯的变量;
也可以使用 new Boolean() 声明一个boolean类型的对象。用typeof检测为object类型。
2、number 类
常用方法:
MAX_VALUE:返回number类可表示的最大值;
MIN_VALUE:返回number类可表示的最小值;
.toString():将数值类型转换为字符串类型。(常用)
.toLocaleString():将数值按照本地格式顺序转换为字符串,
一般从右开始,三个一组加逗号分隔
.toFixed(n):将数字保留n位小数,并转化为字符串格式。(常用)
.toPrecision():将数字格式化为指定长度。n - 不含小数点的位数长度;如果n小于原数字长度,则用科学计数法表示。如果n大于原数字长度,则小数点后补0;
.valueOf():返回number对象的基本数字值。
3、string 类
1) 属性:str.length 返回字符串的长度即字符数;
字符串支持类似于数组的下标访问机制:str[0]
2) .toLocaleLowerCase();将字符串所有字符转成小写
.toLocaleUpperCase();将字符串所有字符转成大写
3) .charAt(n); 截取数组的第n个字符,相当于str[n] (常用)
4) .indexOf("str",index); 从index位置开始,查找字串在字符串中出现的位置,
如果没有找到返回-1,其他同数组的indexOf方法
.lastIndexOf("str",index); 同数组
5) .substring(begin,end); 从字符串中截取子串
只传入一个参数:表示从begin开始到最后
传入两个参数,表示从begin到end的区间,左闭右开。
6) .split():将字符串以指定分隔符分隔。存入数组中。
传入空"" 表示将字符串的每个字符分开存入数组中。
7) .replace("old","new"); 将字符串的第一个old替换为new。
第一个参数,可以是 普通字符串,也可以是 正则表达式。
如果是普通字符串,则只替换第一个old;如果是正则表达式,可以根据正则的写法要求,进行替换
3、date 日期类 对象
1) new Date() :返回当前最新时间。
new Date("2017,12,31,12:34:12"); 返回指定时间。
2) 常用方法:
① .getFullYear():获取年份。
② .getMonth():获取月份。
③ .getDate(); 获取一个月中的第几天
④ .getDay(); 获取一个周中的第几天 0-表示周天
自定义对象
1、基本概念
① 对象:拥有一系列无序属性和方法的集合。
② 键值对:对象中的数据,用以键值对的形式存在。对象的每个属性和方法,都对应值的一个键名,以键取值。
③ 属性:【对象中的变量】;描绘对象特征的一系列变量;
④ 方法:【对象中的函数】;描述对象行为的一系列函数。
2、对象的声明
① 使用字面量声明:
【注】 对象中的数据是以键值对形式存储,键与值之间用:分隔。多个键值对之间用,分隔
对象中的键 可以是除了数组/对象以外的其他任何数据类型,但是我们一般使用普通变量名
对象中的值 可以是任何数据类型,包括数组和对象。
var obj = {
key1 : value1,
key2 : value2,
func1 : function(){}
}
② 使用new关键字声明:
var obj = new Object();
obj.key1 : value1;
obj.key2: value2;
obj.func1 : function(){}
3、对象中属性和方法的读写
① .运算符:
对象内部:this.属性 this.方法();
对象外部:对象名.属性 对象名.方法();
② ["key"]调用:对象名["属性名"] 对象名["方法名"]();
【注】 如果键中包含特殊字符,则只能用第②种方式。
对象中 直接写变量名,默认为调用全局变量。如果需要调用对象自身的属性或者方法,需要使用对象名.属性,或者this.属性。
this.age person.age 推荐使用this关键字。
4、删除对象的属性和方法
delete 对象名.属性名/方法名;
eg. delete person.age;
谢谢阅读,请多指教,共勉。
以上是关于JS中的内置对象的主要内容,如果未能解决你的问题,请参考以下文章