系统提供的对象, Object Array Math Date等
宿主对象(浏览器宿主,Node宿主软件)
浏览器中提供的对象。Js运行环境提供等对象。比如 Bom中的window,Dom中的document。
(一)Math对象
Math本身是一个对象,不是构造函数。
//属性
console.log(Math.PI);
//方法
var a = Math.abs(-100); //绝对值
- Math.abs(数字); 获取一个数字的绝对值
- Math.round(数字); 四舍五入
- Math.PI; π
- Math.ceil(数字); 向上取整
- Math.floor(数字); 向下取整
- Math.random(); 随机数[0,1);
- Math.max(数字,数字,数字...); 求最大数
- Math.min(数字,数字,数字...); 求最小数
(二)Date对象
Date和Math不同,是一个系统内置的构造函数。是JS提供的日期和时间的操作接口。
可以表示1970年1月1日前后各1亿天。
1)创建日期对象
创建当前时间
new date = new Date(); //输出星期 月份 日期 年份 小时:分钟:秒 时区
console.log(date); //默认调用了toString(),得到的是字符串。
console.dir(date); //可以打印对象,得到的是对象。
创建其他时间
new date = new Date('2019/10/10 12:12:12');
//或new date = new Date('2019-10-10 12:12:12');
时间戳:是数字。从1970年到某个时间的总毫秒值
var date = new Date(9999999999);
console.dir(date);
传入多个参数
这种方式中的月份从0开始,即0到11。
var date = new Date(2019,3,4,12,12,12,500);
console.dir(date); //打印2019年4月4日12:12:12
2)操作日期对象
var date = new Date(); //创建一个日期对象
//获取
var year = date.getFullYear(); //获取年份
var month = date.getMonth(); //获取月份。月份从0开始,打印出当前月份-1
var day = date.getDate(); //获取日期
var week = date.getDay(); //获取星期。返回星期数,数字范围为0(周日)到6(周六)
var hours = date.getHours(); //获取小时
var minutes = date.getMinutes(); //获取分钟
var seconds = date.getSeconds(); //获取秒
var milliSeconds = date.getMilliSeconds(); //获取毫秒
var time = date.getTime(); //获取从1970年到某日的时间戳
//设置
date.setMonth(4); //日期改变成5月
date.setMonth(12); //日期改变成下一年的1月。数字没有范围,年份会自动变化
date.setMonth(-1); //日期改变成上一年的12月。
代码举栗:
//封装一个函数,实现格式化日期。
function blockDate(date) {
// var date = new Date(); //获取当前时间
var year = date.getFullYear();
var month = date.getMonth() + 1;
month = month < 10?'0' + month:month;
var day = date.getDate();
day = day < 10?'0' + day:day;
var hours = date.getHours();
hours = hours < 10?'0' + hours:hours;
var minutes = date.getMinutes();
minutes = minutes < 10?'0' + minutes:minutes;
var seconds = date.getSeconds();
seconds = seconds < 10?'0' + seconds:seconds;
var dateStr = (year + '年' + month + '月' + date + '日 ' + hours + '点' + minutes + '分' + seconds + '秒');
return dateStr;
}
var time = new Date(); //当前时间
var time = new Date(2019,3,4,12,12,12); //指定时间
var r = blockDate(time);
document.write(r);
(三)数组对象
在js中数组是一个特殊对象:数组中数据的键名(即下标或索引)是一组从0开始的有序的数字。
var arr = new Array(11,22,33,44,55);
console.log(arr);
1)向数组前后添加数据
var arr = ['张三','李四'];
arr.unshift('小明','小黄'); //在数组最前面添加元素
arr.push('王五','赵六'); //在数组末尾添加元素
//var len = arr.push('王五','赵六');
//console.log(len); //可以返回添加后的数组长度。
2)删除数组前后数据
var arr = ['张三','李四','王五','赵六'];
arr.pop(); //不需要传参数,删除数组最后一个元素
arr.shift(); //删除数组的第一个元素
//var r = arr.pop();
//console.log(arr); //返回删除掉的最后一个元素
3)删除任意位置的数据
数组名.splice(index,howmany,item1,...,itemn);
index:从数组的什么位置开始删
howmany:删几个
item:添加的其他数据
var arr = ['张三','李四','王五','赵六'];
arr.splice(1,1); //删掉了李四
//arr.splice(1,1,lisi); //将李四替换成了lisi
//arr.splice(1,0,'小明','小白'); //在李四前面添加了小明和小白
console.log(arr);
4)数组元素的查询
数组名.indexOf(searchElement,index);
index:表示从数组的什么位置开始查找
var arr = ['张三','李四','张三','王五','张三','赵六']; //0,2,4
var index = arr.indexOf('张三'); //返回张三在数组中的位置
//从前往后找,如果数组中有两个张三,返回第一个张三的位置。
var index = arr.indexOf('张三',2); //返回2
//var index = arr.lastIndexOf('张三'); //返回最后一个张三的位置
//若查找的数据不存在,返回-1
//var index = arr.indexOf('陈七');
console.log(index);
5)反转和排序
反转:arr.reverse();
排序:arr.sort(); //默认按照Unicode编码排序,所以11会排在6前面
arr.sort(function(a,b)) {
//a和b代表数组中相邻的两个数字
return a-b; //从小到大排列。
//return b-a; //从大到小排列。
}
6)截取和拼接
截取:arr.slice(start,end);
var arr = ['张三','李四','张三','王五','赵六'];
var r = arr.slice(); //表示截取全部
var r = arr.slice(2); //表示从指定位置向后截取所有。结果'张三','王五','赵六'
var r = arr.slice(1,3); //从指定位置向后截取到结束的位置,包括1但是不包括3
拼接:
var arr = ['张三','李四','王五','赵六'];
//var str = arr.join(); //默认用,连接
//var str = arr.join('-'); //用-连接
7)清空数组
var arr = [22,33,44,55];
// 方式1 推荐
arr = [];
// 方式2
arr.length = 0;
// 方式3
arr.splice(0, arr.length);
(四)String对象
字符串在内存中占据的大小由字符串的长度决定,字符串在重新赋值时,字符串的长度可能会发生改变。
在内存中原有的数据不会被更改,而是开辟新的空间,存放重新赋值后的数据。原有的数据会在某一时刻被浏览器回收。
要避免大量的字符串拼接,因为字符串由不可变性,在重新开辟空间时会耗时。
1)获取字符串中的单个字符
字符串.charAt(index);
字符串[index];// 推荐使用
2)字符串的拼接和截取
// 拼接
字符串.concat(str1,str2,str3...);
拼接符+//推荐使用
// 截取
字符串.slice(star,end);
3)查询字符是否在字符串中存在
字符串.indexOf();
字符串.lastIndexOf();
4)去除空白符
字符串.trim();// 去除字符串两边的空格
5)字母字符大小写转换
字符串.toUpperCase(); // 转换大写
字符串.toLowerCase(); // 转换小写
6)字符串替换
字符串.replace(newStr,oldStr);
7)字符串分割
字符串.split(sp);// 把一个字符串分割成字符串数组。