javaScript(二)
1. 内置对象
JavaScript中的对象分为4种:内置对象、自定义对象、浏览器对象、DOM对象。
1.1 Math
Math.PI 圆周率
常用方法
Math.random() //生成随机数
Math.floor() //向下取整
Math.ceil() //向上取整
Math.round() //取整,四舍五入
Math.abs() //绝对值
Math.max() //最大值
Math.min() //最小值
Math.sin() //正弦
Math.cos() //余弦
Math.pow() //求指数次幂
Math.sqrt() //求平方根
1.2 Date
Date()是构造函数
var date = new Date();
// 获取1970年1月1日至今的毫秒数 (没什么用)
date.getTime()
date.valueOf() //原始值
console.log(date.getMilliseconds()); //返回毫秒
console.log(date.getSeconds()); // 返回0-59
console.log(date.getMinutes()); // 返回0-59
console.log(date.getHours()); // 返回0-23
console.log(date.getDay()); // 返回星期几 0周日 6周6
console.log(date.getDate()); // 返回当前月的第几天
console.log(date.getMonth() + 1); // 返回月份,从0-11
console.log(date.getFullYear()); // 返回4位的年份
1.3 Array
var arr = [1, 3, 4, 6, 8];
Array.isArray(arr) //判断是否为数组
arr.valueOf() //返回数组对象本身
arr.reverse() //翻转数组
1.3.0 数组增删
arr2.push(60, 70, 80); //从最后添加一个或多个值
arr2.pop(); //从最后删除一个值
arr2.unshift(11, 22, 33); //从开始添加一个或多个值
arr2.shift(); //从开头删除一个值
1.3.1 排序方法
sort()
var arr = [1, 3, 4, 6, 8];
arr.sort() // 默认排序顺序是在将元素转换为字符串,然后按照UTF-16代码单元值序列排序
如果 compareFunction(a, b) 小于 0 ,那么 a 会被排列到 b 之前;
如果 compareFunction(a, b) 等于 0 , a 和 b 的相对位置不变。!不兼容所有浏览器
如果 compareFunction(a, b) 大于 0 , b 会被排列到 a 之前。
arr.sort(function compare(a, b) {
if (a < b ) { // 按某种排序标准进行比较, a 小于 b
return -1;
}
if (a > b ) {
return 1;
}
return 0;
})
要比较数字而非字符串,比较函数可以简单的以 a 减 b,如下的函数将会将数组升序排列
arr.sort(compareFunction)
function compareFunction(a, b) {
return a - b;
}
1.3.2 操作方法
concat()
把参数拼接到当前数组、 或者用于连接两个或多个数组
var arr1 = ["zx", "aq"]
arr1.concat("asd")
arr1.concat(arr)
slice(start,end)
从start开始截取元素,到end结束,包括start,不包括end,返回新数组,start,end是索引;
不会改变原数组
var arr2 = [1,2,3,4,5];
arr2.slice(0,3) //取[1,2,3]
splice(start,length)
从start开始截取元素,截取length个,返回新数组,start是索引,length是个数
会改变元素的数组
var arr2 = [1,2,3,4,5];
arr2.splice(0,3) //取[1,2,3]
1.3.3 位置方法
indexOf()
返回数组中指定元素的第一个值的索引,不存在返回-1
lastIndexOf()
从后向前找指定元素的第一个值的索引,不存在返回-1
1.3.4 迭代方法
forEach()
用于调用数组的每个元素,并将元素传递给回调函数
传一个参数 value是数组值,两个参数 index是索引号
var arr3 = [1, 2, 3, 4, 5]
arr3.forEach(function (value,index) {
console.log(value);
console.log(index);
});
every()
判断回调函数中的表达式是否全部满足,如果满足,返回值就是true,只要有一个不满足就是false
arr3.every(function (value) {
return value<3; //返回false
});
some()
判断回调函数中的表达式是否有一个满足,如果至少一个满足,返回值就是true
arr3.some(function (value) {
return value<3; //返回 true
});
filter()
根据指定条件过滤元素,返回新数组
arr3.filter(function (value) {
return value>3; //返回新数组[4,5]
});
map()
根据数学运算,返回新数组
arr3.map(function (value) {
return Math.pow(value,2); //返回新数组[1,4,9,16.25]
});
1.3.5 清空数组
- 推荐 arr = []
- arr.length = 0
- arr.splice(0, arr.length)
1.3.6 数组转化字符串
join() 数组转化为字符串,以参数分割
var arr4 = [1, 2, 3, 4, 5]
console.log(arr4.join(""));
1.4 基本包装类型
当基本数据类型String/Number/Boolean直接调用方法的时候,javaScript会把String/Number/Boolean类型的变量
包装成对应的临时对象,再调用内置对象String/Number/Boolean方法,最后销毁临时对象
Number/Boolean的基本包装类型基本不用,容易引起歧义
1.5 String
var str = 'abc';
str = 'hello';
当重新给str赋值的时候,常量'abc'不会被修改,依然在内存中
重新给字符串赋值,会重新在内存中开辟空间,这个特点就是字符串的不可变
由于字符串的不可变,在大量拼接字符串的时候会有效率问题
1.5.1 取值方法
charAt(0) //获取指定位置处字符
str[0] //HTML5,IE8+支持 和charAt()等效
1.5.2 操作方法
concat() //拼接字符串(不常用)
slice(start, end) //从start位置开始,截取到end位置,end取不到
substring(start, end) //从start位置开始,截取到end位置,end取不到
substr(start, length) // 从start位置开始,截取length个字符
indexOf() //返回指定内容在元字符串中的位置,如果没有,返回-1;(从前往后,检索到第一个就结束)
lastIndexOf() //返回指定内容在元字符串中的位置,如果没有,返回-1;(从后往前,检索到第一个就结束)
trim() //只能去除字符串前后的空格
toUpperCase() //转换大写
toLowerCase() //转换小写
search()//方法用于检索字符串中指定的子字符串,返回子字符串的起始位置
replace(old, new) //替换字符串 new替换old 只能替换找到的第一个
split() //分割字符串 返回的是一个数组。数组的元素就是以参数的分割的