JavaScript中的内置对象(数组、Boolean、Number、字符串)和自定义对象
JS中常用的内置对象有:数组、Boolean类、Number类、字符串。下面分别介绍各自的常用方法
JS中的数组
1.数组的声明
①字面量声明 直接使用[]声明数组:
var arr=[1,2,"3",true,null,undefined];
在JS中同一数组可以存放各种数据类型。
②使用new关键字声明:var arr = new Array();
参数可以有三种形式:
>>> 不传参数,表示创建一个长度为0的空数组;
>>> 传入一个数值,表示创建长度为length的数组。但是JS中数组的长度可以随时动态改变;
>>> 传入多个值,表示创建一个数组,并将这些值作为数组元素。
2.数组中元素的读写、增删:
①使用[]读取数组元素。
②数组中元素的增删操作:
>>> 删除数组中的元素:delet arr[1];
>>> .push():在数组的最后追加一个元素
>>> .pop():表示删除数组的最后一个元素
>>> .shift():删除数组的第一个元素
>>> .unshift():在数组的开头,插入一个新元素
3.JS中数组的各种方法:
①.join("-"):传入分隔符,表示用指定分隔符将数组连接成字符串。
如果参数设为空,默认用逗号分隔。
②.concat():连接两个或更多数组,返回连接后的新数组,如果连接的数组是二维数组,则只能拆开一层;
[1,2].concat([3,4])-->[1,2,3,4]
[1,2].concat([3,4,[5,6]])-->[1,2,3,4,[5,6]]
③.sort():对数组进行排序。
>>> 默认情况,将按照ASCII码进行升序排列;
>>> 参数可以直接传入比较函数:
arr.sort(function(){
return a-b;//升序
return b-a;//降序
});
④.reverse():将原数组的元素顺序翻转。
⑤.slice(start,end):接收两个值,截取一个子数组,并返回。
>>> 传入一个值,表示从当前下标开始截到最后;
>>> 传入两个值,表示从start截到end,含start不包含end
>>> start和end可正可负。正数表示从左向右,从0开始;
负数表示从右向左,从-1开始。
⑥.indexOf():查找数组元素第一次出现的下标
.lastindexOf():查找数组元素最后一次出现的下标
⑦.forEach();接收一个回调函数,遍历数组
[这个函数在IE8之前不能用]
.forEach(function(item,index){
console.log(item+"-------"+index);
});
⑧.map():数组映射,在回调函数中,可以有返回值。表示将返回的每一个值,赋给新数组。
[这个函数在IE8之前不能用]
var arr1=arr.map(function(item,index,arr){
return item;
});
Boolean类
Boolean类有两种声明方式:字面量声明和new关键字声明。
1.使用new关键字声明的变量,用typeof检测是object类型;
2.使用字面量声明的变量,用typeof检测是boolean类型
如果不用new关键字而直接作为Boolean()函数使用,则可以将各种数据类型转换为boolean类型的变量
Number类
Number类的常用方法有:
1、.toFixed(2):将数值转为字符串,同时四舍五入,保留指定位数的小数。
2、.toString():将数值转为字符串
3、toLocaleString():将数值按本地格式转为字符串,千位分隔符,每三个数为一组。
(12,345,678.5678)
4、.valueOf():将对象类型,取到基本数字值。
字符串
1、.length属性返回字符串的长度
2、字符串中读取每个字符:
str[0] 或者 str.charAt(0)
3、其他常用方法:
①.toLowerCase():把字符串转化为小写
②.toUpperCase():把字符串转化为大写
③.substring(index1,index2):返回index1和index2之间的字符串,包括index1对应的字符,不包括index2对应的字符
④.indexOf():查找某个字符值在字符串中首次出现的位置
⑤.lastIndexOf():在字符串中查找指定的字符或子串最后一次出现的位置
⑥.split("") :传入指定字符,将字符串分割为多个子串,返回一个字符串类型的数组
⑦.replace(/h/g,"*"):如果第一个参数是字符串,则只能替换掉第一个字符串;如果想要替换多个,可以使用正则表达式。
JS中自定义对象的声明
1.使用字面量声明:
var obj={
age:14,
name:"zhangsan",
func:function(){
}
}
注意:
①属性和属性值之间用:分隔表示键值对
②多对属性之间,用逗号分隔
③对象的键,可以是各种数据类型(除了数组[]和对象{})。
对象的值,可以是各种数据类型
2.使用new 关键字声明
var obj1=new Object;
obj1.name="zhangsan";
obj1.func=function(){
}
3.对象属性和方法的读写
①使用、调用
在对象外部,可以使用obj.age
在对象内部,可以使用obj.age或者this.age
注意:在对象中,直接使用变量名默认是使用全局的变量。如果要使用对象的属性,那么必须用对象名或者this调用
②使用[key]调用:obj[age] obj[1] obj["name"]
如果对象的键包含特殊的字符,无法使用.调用时,可以使用中括号调用。
4.obj.hasOwnProperty(keys) 检测一个键是否属于一个对象
5.delete obj.name 删除对象的属性