零基础学习JS--基础篇--数字和日期

数字

javascript中常用的四种数字进制:十进制、二进制、八进制和十六进制。

这些进制都具有通用性,如果你有语言基础则可以略过,下面说一下指数形式。

指数形式:
0e-5   // 0
0e+5   // 0
5e1    // 50
175e-2 // 1.75
1e3    // 1000
1e-3   // 0.001
1E3    // 1000

数字对象

内置的 Number 对象有一些有关数字的常量属性,如最大值、不是一个数字和无穷大的。你不能改变这些属性,但可以按下边的方式使用它们:

const biggestNum = Number.MAX_VALUE;
const smallestNum = Number.MIN_VALUE;
const infiniteNum = Number.POSITIVE_INFINITY;
const negInfiniteNum = Number.NEGATIVE_INFINITY;
const notANum = Number.NaN;

你永远只用从 Number 对象引用上边显示的属性,而不是你自己创建的 Number 对象的属性。

下面的表格汇总了数字对象的属性:

属性描述
Number.MAX_VALUE可表示的最大值
Number.MIN_VALUE可表示的最小值
Number.NaN特指”非数字“
Number.NEGATIVE_INFINITY特指“负无穷”;在溢出时返回
Number.POSITIVE_INFINITY特指“正无穷”;在溢出时返回
Number.EPSILON表示 1 和比最接近 1 且大于 1 的最小Number之间的差别
Number.MIN_SAFE_INTEGERJavaScript 最小安全整数。
Number.MAX_SAFE_INTEGERJavaScript 最大安全整数。
方法描述
Number.parseFloat()把字符串参数解析成浮点数,和全局方法 parseFloat() 作用一致。
Number.parseInt()把字符串解析成特定基数对应的整型数字,和全局方法 parseInt() 作用一致。
Number.isFinite()判断传递的值是否为有限数字。
Number.isInteger()判断传递的值是否为整数。
Number.isNaN()判断传递的值是否为 NaN. More robust version of the original global isNaN().
Number.isSafeInteger()判断传递的值是否为安全整数。

数字的类型提供了不同格式的方法以从数字对象中检索信息。以下表格总结了 数字类型原型上的方法。

方法描述
toExponential()返回一个数字的指数形式的字符串,形如:1.23e+2
toFixed()返回指定小数位数的表示形式,var a=123,b=a.toFixed(2)//b="123.00"
toPrecision()返回一个指定精度的数字。如下例子中,a=123 中,3 会由于精度限制消失 var a=123,b=a.toPrecision(2)//b="1.2e+2"

数学对象(Math)

对于内置的Math数学常项和函数也有一些属性和方法。比方说, Math 对象的 PI 属性会有属性值 pi (3.141...),你可以像这样调用它:

Math.PI; // π

下面的表格总结了 Math 对象的方法。

方法描述
abs()绝对值
sin()cos()tan()标准三角函数;参数为弧度
asin()acos()atan()atan2()反三角函数; 返回值为弧度
sinh()cosh()tanh()双曲三角函数; 参数为弧度。
asinh()acosh()atanh()反双曲三角函数;返回值为弧度。
pow()exp()expm1()log10()log1p()log2()指数与对数函数
floor()ceil()返回小于等于参数的最大整数;返回大于等于参数的最小整数
min()max()返回一个以逗号间隔的数字参数列表中的较小或较大值 (分别地)
random()返回 0 和 1 之间的随机数。
round()fround()trunc(),四舍五入和截断函数
sqrt()cbrt()hypot()平方根,立方根,所有参数平方和的平方根两个参数平方和的平方根
sign()数字的符号,说明数字是否为正、负、零。
clz32()imul()在 32 位 2 进制表示中,开头的 0 的数量。返回传入的两个参数相乘结果的类 C 的 32 位表现形式

和其他对象不同,你不能够创建一个自己的 Math 对象。你只能使用内置的 Math 对象。

日期对象

JavaScript 没有日期数据类型。但是你可以在你的程序里使用 Date 对象和其方法来处理日期和时间。Date 对象有大量的设置、获取和操作日期的方法。它并不含有任何属性。

JavaScript 处理日期数据类似于 Java。这两种语言有许多一样的处理日期的方法,也都是以 1970 年 1 月 1 日 00:00:00 以来的毫秒数来储存数据类型的。

Date 对象的范围是相对距离 UTC 1970 年 1 月 1 日 的前后 100,000,000 天。

创建一个日期对象:

var dateObjectName = new Date([parameters]);

这里的 dateObjectName 对象是所创建的 Date 对象的一个名字,它可以成为一个新的对象或者已存在的其他对象的一个属性。

不使用 new 关键字来调用 Date 对象将返回当前时间和日期的字符串

前边的语法中的参数(parameters)可以是一下任何一种:

  • 无参数 : 创建今天的日期和时间,例如: today = new Date();.
  • 一个符合以下格式的表示日期的字符串:"月 日,年 时:分:秒"。例如: var Xmas95 = new Date("December 25, 1995 13:30:00")。如果你省略时、分、秒,那么他们的值将被设置为 0。
  • 一个年,月,日的整型值的集合,例如: var Xmas95 = new Date(1995, 11, 25)
  • 一个年,月,日,时,分,秒的集合,例如: var Xmas95 = new Date(1995, 11, 25, 9, 30, 0);
Date对象的方法:

处理日期时间的 Date 对象方法可分为以下几类:

  • "set" 方法,用于设置 Date 对象的日期和时间的值。
  • "get" 方法,用于获取 Date 对象的日期和时间的值。
  • "to" 方法,用于返回 Date 对象的字符串格式的值。
  • parse 和 UTC 方法,用于解析 Date 字符串。

通过“get”和“set”方法,你可以分别设置和获取秒,分,时,日,星期,月份,年。这里有个 getDay 方法可以返回星期,但是没有相应的 setDay 方法用来设置星期,因为星期是自动设置的。这些方法用整数来代表以下这些值:

  • 秒,分:0 至 59
  • 时:0 至 23
  • 星期:0 (周日) 至 6 (周六)
  • 日期:1 至 31
  • 月份:0 (一月) to 11 (十二月)
  • 年份:从 1900 开始的年数

例如,假设你定义了如下日期:

var Xmas95 = new Date("December 25, 1995");

Then Xmas95.getMonth() 返回 11, and Xmas95.getFullYear() 返回 1995.

getTime 和 setTime 方法对于比较日期是非常有用的。getTime方法返回从 1970 年 1 月 1 日 00:00:00 的毫秒数。

例如,以下代码展示了今年剩下的天数:

var today = new Date();
var endYear = new Date(1995, 11, 31, 23, 59, 59, 999); // 设置日和月,注意,月份是 0-11
endYear.setFullYear(today.getFullYear()); // 把年设置为今年
var msPerDay = 24 * 60 * 60 * 1000; // 每天的毫秒数
var daysLeft = (endYear.getTime() - today.getTime()) / msPerDay;
var daysLeft = Math.round(daysLeft); //返回今年剩下的天数

这个例子中,创建了一个包含今天的日期的Date对象,并命名为today,然后创建了一个名为endYearDate对象,并把年份设置为当前年份,接着使用todayendYeargetTime分别获取今天和年底的毫秒数,再根据每一天的毫秒数,计算出了今天到年底的天数,最后四舍五入得到今年剩下的天数。

附:以上内容均为个人在MDN网站上学习JS的笔记,若有侵权,将在第一时间删除,若有错误,将在第一时间修改。

  • 26
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值