目录
内置对象
- JavaScript中的对象分为3种:自定义对象、内置对象、浏览器对象
- 自定义对象、浏览器对象属于ECMAScript,浏览器对象时js独有的
- 内置对象:js语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或者是最基本而必要的功能(属性和方法)
- js提供了多个内置对象:Math、Date、Array、String等
1. Math对象
Math
是一个内置对象,它拥有一些数学常数属性和数学函数方法。Math
不是一个函数对象。
Math.max(value1, value2...)
函数:返回一组数中的最大值。
Math.min(value1, value2...)
函数:返回零个或更多个数值的最小值。
Math.random()
函数:返回一个浮点数, 伪随机数在范围从0到小于1,在0
(包括0)和1
(不包括)之间。
<script>
//得到两个数之间的随机整数,包括这两个数在内
function getRandom(max, min) {
return Math.floor(Math.random() * (max - min + 1)) + min; //含最大值,含最小值
}
console.log(getRandom(1, 10));
</script>
2. 日期对象
创建一个新Date
对象的唯一方法是通过new 操作符,例如:let now = new Date();
new Date(); new Date(value); new Date(dateString); //字符串型 new Date(year, monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]]]);
monthIndex
:表示月份的整数值,从 0(1月)到 11(12月)
<script>
var date = new Date();
//根据本地时间返回指定日期的年份
console.log(date.getFullYear());
// 根据本地时间,返回一个指定的日期对象的月份,为基于0的值(0表示一年中的第一月)
console.log(date.getMonth());
// 根据本地时间,返回一个指定的日期对象为一个月中的哪一日(从1-31)
console.log(date.getDate());
// 根据本地时间,返回一个具体日期中一周的第几天,0 表示星期天
console.log(date.getDay());
//2022年3月20日星期日
var year = date.getFullYear();
//月份从0开始,所以+1
var month = date.getMonth() + 1;
var dates = date.getDate();
var days = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
//星期几得到的是数字
var day = date.getDay();
console.log('今天是' + year + '年' + month + '月' + dates + '日' + days[day]);
</script>
结果为:
<script>
var date = new Date();
//根据本地时间,返回一个指定的日期对象的小时
console.log(date.getHours());
//根据本地时间,返回一个指定的日期对象的分钟数
console.log(date.getMinutes());
//根据本地时间,返回一个指定的日期对象的秒数
console.log(date.getSeconds());
function getTime() {
var time = new Date();
hour = time.getHours();
hour = hour < 10? '0' + hour : hour;
minutes = time.getMinutes();
minutes = minutes < 10? '0' + minutes : minutes;
seconds = time.getSeconds();
seconds = seconds < 10? '0' + seconds : seconds;
return hour + '时' + minutes + '分' + seconds +'秒';
}
console.log(getTime());
</script>
结果为:
-
获取日期的总的毫秒形式
Date对象是基于1970年1月1日(世界标准时间)起的毫秒数
<script>
//Date总的毫秒数(时间戳),是指距离1970年1月1日经过了多少毫秒数
var date = new Date();
//1. valueOf()
console.log(date.valueOf());
//2. getTime()
console.log(date.getTime());
//3. +
var date1 = +new Date();
console.log(date1);
//4. H5新增 Date.now()
console.log(Date.now());
</script>
结果为:
倒计时案例
<script>
function countDown(time) {
//当前时间的毫秒数
var nowTime = +new Date();
//用户输入时间的毫秒数
var inputTime = +new Date(time);
// 相减,得到剩余时间的毫秒数 转为秒:/1000
var times = (nowTime - inputTime) / 1000;
//转换为天、时、分、秒
var d = parseInt(times / 60 / 60 / 24);
var h = parseInt(times / 60 / 60 % 24);
h = h < 10 ? '0' + h : h;
var m = parseInt(times / 60 % 60);
m = m < 10 ? '0' + m : m;
var s = parseInt(times % 60);
s = s < 10 ? '0' + s : s;
return d + '天' + h + '时' + m + '分' + s + '秒';
}
console.log(countDown('2022-3-20 00:00:00'));
</script>
结果为:
3. 数组对象
1)数组对象的创建
- 字面量方式
- new Array()
<script>
//创建数组的两种方式
//1.数组字面量
var arr = [1, 3, 5];
console.log(arr[1]);
//2.new Array()
//创建了一个空的数组
var arr1 = new Array();
//创建了数组长度为2的空数组
var arr2 = new Array(2);
//数组里面有2个元素是:1和2
//等价于 var arr3 = [1, 2];
var arr3 = new Array(1, 2);
</script>
2)检测是否为数组
- instanceof运算符:可以用来检测是否为数组
- Array.isArray(参数)
<script>
//检测是否为数组
var arr = [ ];
var obj = { };
//1.instanceof运算符
console.log(arr instanceof Array);
console.log(obj instanceof Array);
//2.Array.isArray(参数);
//是H5新增的方法,支持IE9以上的版本
console.log(Array.isArray(arr));
console.log(Array.isArray(obj));
</script>
结果为:
3)添加或删除数组元素的方法
<script>
//添加数组元素的方法
//1.push()方法:在数组的末尾添加一个或者多个数组元素
//参数直接写数组元素;push完毕之后,原数组发生变化,返回的结果是新数组的长度
var arr = [1, 2, 3];
// arr.push(6, 'a');
console.log(arr.push(6, 'a')); //结果是新数组的长度
// console.log(arr);
//2.unshift()方法:在数组的前面添加新的元素
//参数直接写数组元素;unshift完毕之后,原数组发生变化,返回的结果是新数组的长度
// arr.unshift('b');
console.log(arr.unshift('b', 'c'));
console.log(arr);
//删除数组元素的方法
//1.pop()方法:删除数组的最后一个元素,一次只能删除一个元素
//没有参数;pop完毕之后,原数组发生变化,返回的结果是删除的最后一个元素
console.log(arr.pop());
console.log(arr);
//2.shift()方法:删除数组的第一个元素,一次只能删除一个元素
//没有参数;shift完毕之后,原数组发生变化,返回的结果是删除的第一个元素
console.log(arr.shift());
console.log(arr);
</script>
结果为:
4)数组排序方法
<script>
//1.翻转数组
var arr = ['red', 'green', 'blue', 'hotpink', 'skyblue'];
arr.reverse();
console.log(arr);
//2.数组排序(冒泡排序)
var arr1 = [33, 2, 1, 12, 22];
arr1.sort(function(a, b) {
//升序排列
return a - b;
//降序排列
// return b - a;
});
console.log(arr1);
</script>
结果为:
5)数组索引方法
<script>
var arr = ['red', 'green', 'blue', 'hotpink', 'skyblue','red'];
//1.indexOf(数组元素):从头开始查找,返回该数组元素的索引号
//如果数组元素在数组中有多个,那么返回的事第一个满足条件的索引号
console.log(arr.indexOf('red'));
//如果在数组中找不到这个元素,那么返回的是-1
console.log(arr.indexOf('pink'));
//2.lastIndexOf(数组元素):从后开始往前查找,返回该数组元素的索引号
console.log(arr.lastIndexOf('red'));
</script>
结果为:
6)数组转换为字符串
<script>
//1.toString():将数组转换为字符串
var arr = ['red', 'green', 'blue', 'hotpink', 'skyblue','red'];
console.log(arr.toString());
//2.join(分隔符):将数组转换为字符串,默认是 ,
console.log(arr.join('&'));
</script>
结果为:
7)其他方法
4. 字符串对象
1)基本包装类型
为了方便操作基本数据类型,JavaScript还提供了三类特殊的引用类型:String、Number和Boolean。
基本包装类型:把简单数据类型包装成为复杂数据类型,这样基本数据类型就有了属性和方法。
2)字符串的不可变
指的是值不可以变,虽然看上去可以改变内容,但是地址变了,内存中新开辟了一个内存空间。
3)根据字符返回位置
字符串的所有方法,都不会修改字符串本身(字符串是不可变的),操作完成后会返回一个新的字符串。
4)根据位置返回字符
5)字符串操作方法
<script>
var str = "hello";
//1.concat(字符串1,字符串2...)
console.log(str.concat("world"));
//2.substr(截取的起始位置,截取几个字符)
console.log(str.substr(2,3));
var str1 = 'hello';
//3.replace(被替换的字符串,替换的字符串):只会替换第一个字符
console.log(str1.replace('l','a'));
//4.split('分隔符'):把字符串转换为数组 join('分隔符'):把数组转换为字符串
var str2 = 'red, green, blue, pink, yellow';
console.log(str2.split(','));
</script>
结果为: