JS内置对象及应用
1. 对象
对象是由属性和方法组成的,使用点语法访问(.语法)
2. Array数组
-
创建
var arr=[] //定义数组
var arr=['string',123,true] //赋值
//实例化对象
var new Array = [];
arr[0] = 'abc'
arr[1] = 'def'
-
特点
-
数组用于存储若干数据,自动为每位数据分配下标
-
数组中的元素不限数据类型,长度可以动态调整
-
动态操作数组:根据元素下标读取或或修改数组元素,arr[index]
-
-
属性和方法
-
属性:length表示数组长度
-
方法:
-
push(data)
在数组末尾添加一个或多个元素,多个元素之间使用逗号隔开,返回数组的新的长度
var arr = [11,22,33];
arr.push(44)
console.log(arr);//11,22,33,44 -
pop()
删除数组的最后一个元素,并将被删除的元素返回
var arr = [11,22,33,44];
var result = arr.pop();
console.log(result); // 44 -
unshift(data)
向数组开头添加一个或多个元素,并返回新的数组长度
var arr = [11,22,33];
arr.unshift(55,66);
console.log(arr); // 55 66 11 22 33 -
shit()
可以删除数组的第一个元素并返回
var arr = [55,66,11,22,33];
arr.shift();
console.log(arr) // 66 11 22 33 -
slice(start,end)
-
可以用来已有的数组中提取指定的元素
-
该方法不会影响到原数组
-
参数:
-
第一个,截取开始的位置的索引,包含开始索引
-
第二个,截取结束的位置的索引,不包含结束索引(第二个参数可以不写,此时会截取开始往后的所有元素)
-
-
索引可以传递一个负值,若果传递一个负值,则从后往前计算
-
-1 倒数第一个
-
-2 倒数第二个
-
......
-
var arr2 = ['孙悟空','猪八戒','沙和尚','唐僧','白龙马','红孩儿',"牛魔王"];
var result2 = arr2.slice(1,4); // 猪八戒 沙和尚
result2 = arr2.slice(3) // 沙和尚
result2 = arr2.slice(1,-2) // 猪八戒
console.log(result2); -
-
splice()
删除数组中的指定元素
使用splice()会影响到原数组,会将指定元素从数组中删除并将删除的元素作为返回值返回
参数:
* 第一个,表示开始位置的索引
* 第二个,表示删除的数量
* 第三个及以后
* 可以传递一些元素,这些元素将会自动插入到开始位置的索引前面var arr2 = ['孙悟空','猪八戒','沙和尚','唐僧','白龙马','红孩儿',"牛魔王"];
var result3 = arr2.splice(0,3,'铁扇公主');
console.log(arr2); // 铁扇公主 唐僧 白龙马 红孩儿 牛魔王
console.log(result3); // 孙悟空 猪八戒 沙和尚
// 例:去除数组中的重复数字
// 创建一个数组
var num = [1,2,4,5,5,6,8,8,9];
for(var i = 0 ; i < num.length ; i++){
for(var j = i+1 ; j < num.length ; j++){
if(num[i] == num[j]){
num.splice(j,1);
j--; // 让j自减防止连续相同的数字出现
}
}
}
console.log(num); -
concat
* concat()方法可以连接两个或多个数组,并将新的数组返回
* 该方法不会影响到原数组
* 也可以在数组后连接单个元素
var arr = ['孙悟空','猪八戒','沙和尚'];
var arr2 = ['唐僧','白龙马'];
var arr3 = ['红孩儿','牛魔王'];
var result = arr.concat(arr2,arr3,'二郎神','太上老君'); -
join()
* 该方法可以将数组转换为一个字符串
* 该方法不会对原数组产生影响,而是将转换后的字符串作为结果返回
* 在join()中可以指定一个字符串作为参数,这个字符串将会成为数组中元素的连接符
* 如果不指定连接符,则默认使用逗号作为连接符
result1 = arr.join()
result2 = arr.join('-')
console.log(result1); // 孙悟空,猪八戒,沙和尚
console.log(result2); // 孙悟空-猪八戒-沙和尚 -
reverse()
* 该方法用来翻转数组(前面的到后面,后面的到前面)
* 该方法会直接修改原数组
arr2.reverse();
console.log(arr2); // 白龙马,唐僧 -
sort()
* 可用来对数组的排序
* 会影响原数组,默认按照Unicode编码排序
* 即使对纯数字的数组排序,也会使用Unicode编码排序
* 所以对纯数字数组排序时,容易出现错误的结果
* 可以自己制定排序规则
- 在sort()添加一个回调函数,来指定排序规则
- 回调函数中需要定义两个参数,浏览器会分别使用数组中的元素作为实参去调用回调函数
* 浏览器会根据回调函数的返回值来决定元素的顺序
- 返回一个大于0的值,则元素交换位置
- 返回一个小于0的值,则元素位置不变
- 返回一个等于的值,则认为两元素相等,位置不变
* 升序排列 : a-b
* 降序排列 : b-a
var num = [2,5,8,2,1,33,11];
var num2 = [2,5,8,2,1,33,11];
console.log(num.sort()); //1, 11, 2, 2, 33, 5, 8
num2.sort(function(a,b){
if(a>b){
return -1;
}else if(a<b){
return 1;
}else{
return 0;
}
//升序排列 return a-b
//降序排列 return b-a
})
-
-
-
String对象
-
创建
var str = "100";
var str2 = new String("hello"); -
特点
-
字符串采用数组结构存储每位字符,自动为字符分配下标,从0开始
-
-
属性
-
length :获取字符串长度
-
-
方法
-
toUpperCase() - toLowerCase
//字母大小写转换
//返回转换后的字符,不影响原始字符
var str_1"abcd"
var str_2="EFGH"
var result_1 = str_1.toUpperCase()
var result_2 = str_1.toLowerCase()
console.log(str_1) // 'abcd'
console.log(result_1) // 'ABCD'
console.log(str_2) // 'EFGH'
console.log(result_2) // 'efgh' -
charAt(index)
//获取指定下标的字符
//charCodeAt(index) 获取指定下标的字符编码
var str = 'abcd'
console.log(str.charAt(1)) // b -
indexOf(str,from_index)
-
获取指定字符的下标,从前往后,找到即返回
-
str - 需要查找的字符
-
from_index - 起始查询的下标,默认为 0 下标开始
-
返回 - 返回指定查询的字符下标,失败返回 -1
var str = 'abcdef'
console.log(str.indexOf('c',0)) // 3
console.log(str.indexOf('r',0)) // -1
// lastIndexOf(str,from_index) - 从后往前找; 获取指定字符最后一次出现的下标,从后向前查找,找到即返回 -
-
substring(start_index,end_index)
-
根据指定的下标范围截取字符串,start_Index ~ end_Index
-
start_index : 开始下标
-
end_index : 结束下标,可省略,省略表示截止末尾
//结果不包含结尾下标对应的字符,省略endindex包含
var str = 'abcdefg'
console.log(str.substring(1,3)) // 'bc'
console.log(str.substring(3)) // 'defg'
-
-
substr(start_index,length)
-
根据下标截取指定字符长度
-
start_index:起始下标
-
length:从起始下标开始,截取的长度
// 结果包含起始下标的字符
var str = 'abcdefg'
console.log(str.substr(1,3)) // 'b,c,d'
-
-
split(param)
-
将字符串按照指定的字符进行分割,以数组形式返回分割结果
-
指定分隔符,必须是字符串中存在的字符,如果字符串中不存在,分割失败,仍然返回数组
var str = '123&as&d&?yop' // 以'&'分割
console.log(str.split('&')) // 123asd?yop
-
-
-
-
Math 对象
-
定义
-
Math对象只要提供一些数学运算方法
-
-
属性
-
圆周率:Math.PI
-
自然对数:Math.E
-
-
方法
-
Math.random(); 生成0-1之间的随机数
-
Math.ceil(x); 对x向上取整,忽略小数位,整数位+1
-
Math.floor(x); 对x向下取整,舍弃小数位,保留整数位
-
Math.round(x); 对x四舍五入取整数
-
parseInt(string, radix) ;解析一个字符串,并返回一个整数
-
遇到小数点会停止解析,因为小数点并不是有效的数字字符
-
string 必需。要被解析的字符串。radix 可选。表示要解析的数字的基数。即进制:该值介于 2 ~ 36 之间
-
当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数
-
如果 string 以 “0x” 开头,parseInt() 会把 string 的其余部分解析为十六进制的整数
-
如果 string 以 0 开头,那么 ECMAScript v3 允许 parseInt() 的一个实现把其后的字符解析为八进制或十六进制的数字
-
如果 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数
-
只有字符串中的第一个数字会被返回
-
开头和结尾的空格是允许的
-
如果字符串的第一个字符不能被转换为数字,那么 parseFloat() 会返回 NaN
-
-
-
-
Date 日期对象
-
创建
var date1 = new Date(); //定义当前的日期的对象
var date2 = new Date("2011/11/11");
var date3 = new Date("2011/11/11 11:11:11"); -
方法
-
读取或设置当前时间的毫秒数(时间戳):getTime()
-
getFullYear()
-
getMonth()
-
getDate()
var dt=new Date()
console.log(dt) //获取当前日期
console.log(dt.getTime())
//中国的时间与规定的相差一个月,要获取当前月份要+1
console.log(dt.getMonth()+1)
console.log(dt.getFullYear())
//获取当前时间的 时 分 秒
console.log(dt.getHours(),dt.getUTCMinutes(),dt.getSeconds()) -
-
-

浙公网安备 33010602011771号