广州智能建站,wordpress 安装 404,dede模板网站如何搭建,电脑有网但浏览器打不开网页数字和日期
本章节介绍了在 JavaScript 中使用数字和日期来处理和执行计算的概念#xff0c;对象和函数。
数字
在 JavaScript 里面#xff0c;数字均为双精度浮点类型#xff08;double-precision 64-bit binary format IEEE 754#xff09;#xff0c;即一个介于 2^−…数字和日期
本章节介绍了在 JavaScript 中使用数字和日期来处理和执行计算的概念对象和函数。
数字
在 JavaScript 里面数字均为双精度浮点类型double-precision 64-bit binary format IEEE 754即一个介于 ±2^−1023 和 ±2^1024 之间的数字或约为 ±10^−308 到 ±10^308数字精度为 53 位。整数数值仅在 ±(2^53 - 1) 的范围内可以表示准确。
除了能够表示浮点数数字类型也还能表示三种符号值Infinity正无穷、-Infinity负无穷和 NaN (not-a-number非数字)。
JavaScript 最近添加了 BigInt 的支持能够用于表示极大的数字。使用 BigInt 的时候有一些注意事项例如你不能让 BigInt 和 Number 直接进行运算你也不能用 Math 对象去操作 BigInt 数字。
请参见 Javascript 指南中的 JavaScript 数据类型和数据结构了解其他更多的基本类型。
你可以使用四种数字进制十进制、二进制、八进制和十六进制。
十进制数字
1234567890
42请注意十进制可以以 0 开头后面接其他十进制数字但是假如下一个接的十进制数字小于 8那么该数字将会被当做八进制处理。
0888 // 888 以十进制解析
0777 // 以八进制解析为十进制的 511二进制数字
二进制数字语法是以零为开头后面接一个小写或大写的拉丁文字母 B(0b 或者是 0B)。假如 0b 后面的数字不是 0 或者 1那么就会提示这样的语法错误SyntaxError“Missing binary digits after 0b0b 之后缺失二有效的二进制数据”。
0b10000000000000000000000000000000 // 2147483648
0b01111111100000000000000000000000 // 2139095040
0B00000000011111111111111111111111 // 8388607八进制数字
八进制数字语法是以 0 为开头的。假如 0 后面的数字不在 0 到 7 的范围内该数字将会被转换成十进制数字。
0O755 // 493
0o644 // 420在 ECMAScript 5 严格模式下禁止使用八进制语法。八进制语法并不是 ECMAScript 5 规范的一部分但是通过在八进制数字添加一个前缀 0 就可以被所有的浏览器支持0644 420 而且 \045 %。在 ECMAScript 6 中使用八进制数字是需要给一个数字添加前缀“0o”。
const n 0755; // 493
const m 0644; // 420十六进制
十六进制数字语法是以零为开头后面接一个小写或大写的拉丁文字母 X(0x 或者是 0X)。假如0x后面的数字超出规定范围 (0123456789ABCDEF)那么就会提示这样的语法错误SyntaxError“Identifier starts immediately after numeric literal”。
0xFFFFFFFFFFFFFFFFF // 295147905179352830000
0x123456789ABCDEF // 81985529216486900
0XA // 10指数形式
0e-5 // 0
0e5 // 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.23e2toFixed()返回指定小数位数的表示形式var a123,ba.toFixed(2)//b123.00toPrecision()返回一个指定精度的数字。如下例子中a123 中3 会由于精度限制消失 var a123,ba.toPrecision(2)//b1.2e2
数学对象Math
对于内置的Math数学常项和函数也有一些属性和方法。比方说 Math 对象的 PI 属性会有属性值 pi (3.141...)你可以像这样调用它
Math.PI; // π同理标准数学函数也是 Math 的方法。这些包括三角函数、对数、指数和其他函数。比方说你想使用三角函数 sin你可以这么写
Math.sin(1.56);需要注意的是 Math 的所有三角函数参数都是弧度制。
下面的表格总结了 Math 对象的方法。
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然后创建了一个名为endYear的Date对象并把年份设置为当前年份接着使用today和endYear的getTime分别获取今天和年底的毫秒数再根据每一天的毫秒数计算出了今天到年底的天数最后四舍五入得到今年剩下的天数。
parse 方法对于从日期字符串赋值给现有的 Date 对象很有用例如以下代码使用parse和setTime分配了一个日期值给IPOdate对象
var IPOdate new Date();
IPOdate.setTime(Date.parse(Aug 9, 1995));示例
在下边的例子中JSClock() 函数返回了用数字时钟格式的时间
function JSClock() {var time new Date();var hour time.getHours();var minute time.getMinutes();var second time.getSeconds();var temp (hour 12 ? hour - 12 : hour);if (hour 0) temp 12;temp (minute 10 ? :0 : :) minute;temp (second 10 ? :0 : :) second;temp hour 12 ? P.M. : A.M.;return temp;
}JSClock函数首先创建了一个叫做time的新的Date对象因为没有参数所以time代表了当前日期和时间。然后调用了getHoursgetMinutes以及getSeconds方法把当前的时分秒分别赋值给了hourminutesecond。
接下来的 4 句在time的基础上创建了一个字符串第一句创建了一个变量temp并通过一个条件表达式进行了赋值如果小时大于 12就为 (hour - 12)其他情况就为hour除非hour为 0这种情况下它会变成 12。
接下来的语句拼接了minute的值到temp后。如果minute小于 10条件表达式就会在minute前边加个 0其他情况下加一个冒号。然后按同样的方式在temp后拼接上了秒。
最后如果hour是 12 或者更大条件表达式会在temp后拼接P.M.否则拼接A.M.。