当前位置:   article > 正文

JS数学对象、日期对象_本关任务:练习使用math类的常用方法。

本关任务:练习使用math类的常用方法。

第1关:Math类
任务描述
本关任务:练习使用Math类的常用方法。
相关知识
Math用于进行数学计算,没有构造函数。
常用的数
一些常用的无理数的表示方法:
在这里插入图片描述
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还有很多的方法,如下面的表格所示:
在这里插入图片描述
编程要求
本关的编程任务是补全右侧代码片段中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 **********/
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

第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
获取和设置时分秒
获取和设置时、分、秒、毫秒的函数在形式上与上面的函数几乎相同,这里以表格的形式列出:
在这里插入图片描述
注:以上多个参数的函数,除了第一个参数外的参数都为可选。
日期转字符串
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 year=date.getFullYear();
   var month=date.getMonth();
   var day=date.getDate();
   var d=date.getDay();
   return year+','+month+','+day+','+d;
    /*********End*********/
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

第3关:JavaScript错误
任务描述
本关任务:在求数的平方根的倒数的过程中加入错误处理部分。
相关知识
JavaScript代码在运行过程中,可能会因为很多原因出现错误,如:语法错误、用户输入错误等。发生错误后不能置之不理,要进行处理。为可能的错误提前在代码中制定解决方案。
try-catch捕获和处理错误
用法如下:
try {
//运行时可能出错的代码
}catch(err) {
//处理出现的错误
}
JavaScript在运行时抛出的错误或者异常,会被catch语句捕捉到,其中的变量err包含了错误的有关信息。
try {
console.lo(“JavaScript”);
}catch(err) {
window.alert(“发生错误,错误信息:”+err.message);
}
console.log(“错误已处理完毕。”);
第二句有语法错误,被catch捕捉到,错误信息console.lo is not a function通过弹窗告知用户。用户点击弹窗上的确定后,程序继续往下运行。
如果没有进行错误处理,程序在第二句停止运行,这样后面的所有代码都不再执行。
创建自定义错误
console.lo is not a function显然是一个系统内置的错误类型,如果用户觉得这样的错误类型不够具体,可以自定义错误类型:
throw exception;
exception可以是字符串、数字、逻辑值或者对象,这样的错误也会被catch语句块捕获。
//求开方的值
function mySqrt(a) {
try {
if(a < 0)
throw new Error(“错误!负数不能开平方”);
if(a > 10000)
throw new Error(“错误!不支持大数开平方”);
return Math.sqrt(a);
} catch(err) {
console.log(“发生错误,错误信息:”+err.message);
}
return “error”;
}
new Error()是一个Error对象,括号内的参数是err.message属性的值。比如a是-2,抛出第一个自定义异常,并在catch块中输出异常的信息,函数最后返回error。
编程要求
本关的编程任务是补全右侧代码片段中Begin至End中间的代码,具体要求如下:
补充完整函数mainJs(a),函数的功能是返回a的平方根的倒数;
如果a为负数,抛出异常negative cannot be rooted,同时将该异常信息作为结果返回;如果a为0,抛出异常zero cannot be numerator,同时将该异常信息作为结果返回;
具体请参见后续测试样例。
测试说明
测试过程:
平台将读取用户补全后的ErrorException.js;
调用其中的mainJs()方法,并输入若干组测试数据;
接着根据测试后的输出判断程序是否正确。
以下是测试样例:
测试输入:
-2
预期输出:
negative cannot be rooted
测试输入:
4
预期输出:
0.5
海到无边天作岸,山登绝顶我为峰。 —— 林则徐
如果你觉得这一关的内容对你有帮助,请你在下面点赞。
参考代码:

function mainJs(a) {
	//请在此处编写代码
	/********** Begin **********/
    try
    {
        if(a==0)
        throw new Error("zero cannot be numerator");
        else if(a<0){
            throw new Error("negative cannot be rooted");
        }
        else{
           return 1/Math.sqrt(a) ;
        }
    }catch(err)
    {
        return err.message;
    }
    
    
	/********** End **********/
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/550337
推荐阅读
  

闽ICP备14008679号