内置对象概述
JavaScript 语言中提供了一些对象,让开发人员可以使用一些现成的功能。
常用的内置对象
[Array - 数组](./js - 数组.md)
Math - 数学
Date - 日期
RegExp - 正则表达式
Math 对象
常用的方法
Math.floor()
: 向下取整去掉数值类型数据的小数部分,只保留整数部分。
1
2
3var number = 3.14;
var result = Math.floor(number);
console.log(result); // 31
2
3var number = 3.99;
var result = Math.floor(number);
console.log(result); // 3 不是四舍五入负数情况时,去掉小数部分,然后在整数部分减 1。
1
2
3var number = -3.99;
var result = Math.floor(number);
console.log(result); // -4Math.random()
: 获取 0~1 之间的随机数1
2var result = Math.random();
console.log(result);Math.abs()
: 绝对值1
2
3var number = -3.99;
var result = Math.abs(number);
console.log(result); // 3.99Math.sqrt()
: 开方1
2
3var number = 9;
var result = Math.sqrt(number);
console.log(result); // 31
2
3var number = 16;
var result = Math.sqrt(number);
console.log(result); // 4Math.pow()
: 乘方Math.pow(m,n)
中 m 底数,n 次方1
2
3var number = 2;
var result = Math.pow(number, 4);
console.log(result); // 16 2^4
获取指定范围的随机数
例子 - 如何获取 1-10 的随机数?
首先获取一个 0~1 的随机数,Math.random()
。
然后乘以 10,即 0~10,Math.random() * 10
。
又因为要从 1 开始,所以要再加 1,即 1~11,Math.random() * 10 + 1
。
但因为要的是整数,所以要向下取整,这样就不用担心会出现大于 10 的整数,Math.floor(Math.random() * 10 + 1)
。
1 | var number = Math.floor(Math.random() * 10 + 1); |
扩展成一个公式 Math.floor(Math.random() * X + Y)
X 指的是想取到 x 的随机数,y 指的是从 y 开始,不设时默认为 0
例如随机获取星期 1~7,即 1~7 的整数
1 | var number = Math.floor(Math.random() * 7 + 1); |
例子 - 针对下面的成员列表,随机选择一个人在控制台输出。
让随机数设成下标。
5 个超级英雄,他们的索引——0,1,2,3,4,即要生成 0~5 之间的随机数,因为要向下取整,所以要 4+1。
因为数组的长度可能会变,所以要生成 0 ~ list.length
之间的随机数。
1 | var list = ["钢铁侠", "绿巨人", "美国队长", "蜘蛛侠", "雷神"]; |
Date 对象
var d = new Date();
Date() 不设参数时就是显示当前的星期 月 日 年 时:分:秒 时区
1 | var d = new Date(); |
var d_target = new Date("2021-1-1");
自己设置时间
1 | var d1 = new Date("2021-1-1 12:00:30"); |
d.getFullYear();
获取年份
1 | var year = d.getFullYear(); //获取年份 |
d.getMonth();
获取月份
1 | var month = d.getMonth(); |
自己设置时间,2021 年 1 月 1 日,1 月是 0
1 | var d1 = new Date("2021-1-1"); |
d.getDate();
获取日期
1 | var date = d.getDate(); //获取日期 |
d.getHours();
获取小时
d.getMinutes();
获取分钟
d.getSeconds();
获取秒数
``d.getTime(); `
获取时间戳。时间戳是指格林威治时间 1970 年 01 月 01 日 00 时 00 分 00 秒起至现在的总毫秒数。
应用场景:可用于计算时间的差值。
1 | var time = d.getTime(); |
例子 - 打印显示当前时间
1 | var d = new Date(); |
计时器方法 setInterval
setInterval(function(){},ms);
第一个参数:可以把一个函数作为一个参数传递给第一个参数。
第二个参数:毫秒数。
每隔 1 毫秒数调用一次函数。
例子 - 每隔 1 秒输出一次 hello world
1 | setInterval(function () { |
例子 - 简单计时器,每秒输出当前秒数。
1 | var n = 0; |
例子 - 在控制台输出当前时间,每秒输出一次。
正确代码。每一次都获取的时候才能改变控制台输出的时间。
1 | setInterval(function () { |
错误代码,只会一直输出那时的时间。
1 | var d = new Date(); |
课后练习
1. 将自己班级的同学添加到一个数组中,每次刷新页面,随机选择一名同学。
1 | var list = ["小红", "小明", "小亮", "小李", "小孙"]; |
2. 在控制台输出当前时间,每秒输出一次。
1 | setInterval(function () { |
以上内容编写于 2021 年 8 月 16 日 17 点 38 分。