赞
踩
任务描述
本关任务:练习使用Math
类的常用方法。
相关知识
Math
用于进行数学计算,没有构造函数。
常用的数
一些常用的无理数的表示方法:
表示 | 意义 | 约等于 |
---|---|---|
Math.E | e | 2.718 |
Math.PI | 圆周率 | 3.14 |
Math.SQRT2 | 2的平方根 | 1.414 |
Math.LN2 | 2的自然对数 | 0.693 |
console.log(Math.PI);//输出3.141592653589793
console.log(Math.pi == 3.141592653589793);//true
console.log(Math.pi == 3.14);//false
向上取整
Math.ceil(x)
实现向上取整,返回大于等于x
且离x
最近的整数。
console.log(Math.ceil(1.1));//输出2
console.log(Math.ceil(1));//输出1
console.log(Math.ceil(-1.1));//输出-1
Math.floor(x)
返回小于等于x
且离x
最近的整数。
console.log(Math.floor(1.1));//输出1
console.log(Math.floor(1));//输出1
console.log(Math.floor(-1.1));//输出-2
随机数
Math.random()
返回0
到1
之间的一个随机数,包含0
不包含1
。
console.log(Math.random());//输出0.1493135392665863
平方根
Math.sqrt(x)
返回x
的平方根。
Math.sqrt(4);//2
Math.sqrt(2);//1.4142135623730951
四舍五入
Math.round(x)
返回x
四舍五入后的整数。
Math.round(1.5);//2
Math.round(1.49);//1
求最值
Math.max(x1,x2,....xn)
返回参数的最大值,参数个数不限;
Math.max(1,2,34,100);//100
Math.max(-1,-2,-34,-100);//-1
Math.min(x1,x2,....xn)
返回参数的最小值;
Math.min(1,2,34,100);//1
Math.min(-1,-2,-34,-100);//-100
其余方法
Math
还有很多的方法,如下面的表格所示:
方法 | 作用 |
---|---|
Math.abs(x) | 求x的绝对值 |
Math.pow(x,y) | 计算x的y次幂 |
Math.exp(x) | e的x次方 |
Math.log(x) | x以e为底的对数 |
Math.sin(x) | x的正弦 |
Math.cos(x) | x的余弦 |
Math.tan(x) | x的正切 |
Math.asin(x) | x的反正弦 |
Math.acos(x) | x的反余弦 |
Math.atan(x) | x的反正切(-PI/2到PI/2之间) |
Math.atan2(y,x) | x轴到点(x,y)的角度 (-PI/2到PI/2之间) |
编程要求
本关的编程任务是补全右侧代码片段中Begin
至End
中间的代码,具体要求如下:
计算参数a
向上取整、向下取整、四舍五入、平方根、正弦的结果,返回这些结果的最大值和最小值的和;
具体请参见后续测试样例。
测试说明
测试过程:
平台将读取用户补全后的MathClass.js
;
调用其中的mainJs()
方法,并输入若干组测试数据;
接着根据测试后的输出判断程序是否正确。
以下是测试样例:
测试输入: 4
预期输出: 3.2431975046920716
- function mainJs(a) {
- a = parseInt(a);
- //请在此处编写代码
- /********** Begin **********/
- return Math.min(Math.ceil(a),
- Math.floor(a),
- Math.round(a),
- Math.sqrt(a),
- Math.sin(a))+Math.max(Math.ceil(a),
- Math.floor(a),
- Math.round(a),
- Math.sqrt(a),
- Math.sin(a))
- /********** End **********/
- }
第2关:Date类
任务描述
本关任务:练习时间日期工具类的使用。
相关知识
Date
类用于处理日期和时间。
构造函数
Date(x)
的参数x
可以有四种情况:
new Date();//无参数,返回当前时间
new Date(millseconds);//参数为距离1970年1月1日8时0分0秒0毫秒的毫秒数,返回对应的时间
new Date(timeString);//参数为时间字符串,返回这个时间字符串对应的时间
new Date(year,month,day,hour,minute,second,millsecond);//参数为整数序列,分别表示年、月、日、时、分、秒、毫秒,返回这些时间参数对应的一个特定的时间
以上均返回一个对应的时间对象,如下:
console.log(new Date());//输出Sat Apr 07 2018 18:56:00
console.log(new Date(1000));//输出Thu Jan 01 1970 08:00:01
console.log(new Date("April 7, 2018 18:00:00"));//输出Sat Apr 07 2018 18:00:00
console.log(new Date(2018,4,7,18,0,0,0));//输出Mon May 07 2018 18:00:00
时间对象有一系列获取和设置年、月、日、时、分、秒、毫秒的函数。
获取和设置年月日
为举例方便,我们先定义一个时间。
//1970年1月1日上午8点0分0秒
var date = new Date(0);
x.getFullYear()
返回x
对应的四位数年份,x
为Date
类对象;console.log(date.getFullYear());//输出1970
setFullYear(year,month,day)
用于设置年份,month
和day
可选;date.setFullYear(2017);
console.log(date);//输出Sun Jan 01 2017 08:00:00
x.getMonth()
返回x
中的月份,结果在0
(一月)到11
(十二月)之间;console.log(date.getMonth());//输出0
setMonth(month,day)
作用是设置月份,0
表示一月。1
表示二月,依次类推,day
可选;date.setMonth(2);
console.log(date);//输出Sun Mar 01 1970 08:00:00
x.getDate()
返回x
对象在一个月的第几天(1
到31
),x.getDay()
返回x
对象在一个星期的第几天(0
到6
,0
为周日);console.log(date.getDate());//输出1
console.log(date.getDay());//输出4
由此可见,1970
年1
月1
号那个美好的新年第一天是个周四。
setDate(day)
设置日期对象在一个月的第几天(1
到31
);date.setDate(31);
console.log(date.getDate());//输出31
获取和设置时分秒
获取和设置时、分、秒、毫秒的函数在形式上与上面的函数几乎相同,这里以表格的形式列出:
方法 | 作用 | 参数或者结果的范围 |
---|---|---|
getHours() | 获取小时 | 0~23 |
setHours(hour,min,sec,millsec) | 设置小时 | 023、059、059、0999 |
getMinutes() | 获取分钟 | 0~59 |
setMinutes(min,sec,millsec) | 设置分钟 | 059、059、0~999 |
getSeconds() | 获取秒钟 | 0~59 |
setSeconds(sec,millsec) | 设置秒钟 | 059、0999 |
getMillSeconds() | 获取毫秒数 | 0~999 |
setMillSeconds(millsec) | 设置毫秒数 | 0~999 |
getTime() | 获取距1970年1月1日8时0分0秒的毫秒数 | 大于等于0 |
setTime(millsec) | 设置距1970年1月1日8时0分0秒的毫秒数 | 大于等于0 |
注:以上多个参数的函数,除了第一个参数外的参数都为可选。
日期转字符串
toString()
将日期转字符串,结果类似于Sun Jan 07 2018 20:01:14 GMT+0800 (中国标准时间)
,分别表示星期、月份、天数、年份、小时、分钟、秒和时区(中国采用东八区时间)。
console.log(new Date().toString());//输出Sat Apr 07 2018 20:40:14 GMT+0800 (中国标准时间)
编程要求
本关的编程任务是补全右侧代码片段中Begin
至End
中间的代码,具体要求如下:
date
是一个时间对象,求出date
对应的年份,月份(0
表示一月),一个月第几天(1
表示第一天),星期几(0
表示周日,1
表示周一);
拼接这些结果(以,
隔开)组成一个字符串并返回该字符串;
具体请参见后续测试样例。
测试说明
测试过程:
平台将读取用户补全后的DateClass.js
;
调用其中的mainJs()
方法,并输入若干组测试数据;
接着根据测试后的输出判断程序是否正确。
以下是测试样例:(注:我们的测试用服务器是Linux
,所以日期的字符串格式和相关知识中介绍的有细微区别,学员不用考虑)
测试输入: 0
预期输出: 1970,0,1,4
- function mainJs(a) {
- a = parseInt(a);
- var date = new Date(a);
- /*********Begin*********/
-
- var b=date.getFullYear();
- var c=date.getMonth();
- var d=date.getDate();
- var e=date.getDay();
-
-
- return b+","+c+","+d+","+e;
- /*********End*********/
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。