Numbers
在JavaScript中,没有特别的类型对应整型。还有三种象征性的类型数值:+Infinity -Infinity NaN(非数字)
Decimal numbers
十进制数值
1234567890
42
// Caution when using leading zeros:
0888 // 888 parsed as decimal
0777 // parsed as octal in non-strict mode (511 in decimal)
Binary numbers
二进制数值 (0b 或者 0B 起始),若0b或者0B之后的数字不是0或者1,会出现语法错误
var FLT_SIGNBIT = 0b10000000000000000000000000000000; // 2147483648
var FLT_EXPONENT = 0b01111111100000000000000000000000; // 2139095040
var FLT_MANTISSA = 0B00000000011111111111111111111111; // 8388607
Octal numbers
八进制数值,定义起始标志为:0,若后续出现的数字超过7,那么该数值会被视为十进制数值。ECMAScript5八进制数值,定义起始标志为:0o
var n = 0755; // 493
var m = 0644; // 420
var a = 0o10; // ES2015: 8
Hexadecimal numbers
十六进制数值,定义起始标志为:0x或者0X,后续数值范围为:0123456789ABCDEF,若不符合,会出现语法错误。
0xFFFFFFFFFFFFFFFFF // 295147905179352830000
0x123456789ABCDEF // 81985529216486900
0XA // 10
Exponentiation
指数
1E3 // 1000
2e6 // 2000000
0.1e2 // 10
数值对象
内置Number object
var biggestNum = Number.MAX_VALUE;
var smallestNum = Number.MIN_VALUE;
var infiniteNum = Number.POSITIVE_INFINITY;
var negInfiniteNum = Number.NEGATIVE_INFINITY;
var notANum = Number.NaN;
数值对象的属性
属性 | 描述 |
Number.MAX_VALUE | 可表述的最大数值 |
Number.MIN_VALUE | 可表述的最小数值 |
Number.NaN | 特指非数字的值 |
Number.NEGATIVE_INFINITY | 特指负无限值 |
Number.POSITIVE_INFINITY | 特指正无限值 |
Number.EPSILON | 该值和最小值之间的差值,但是其所表示的值大于“该值” |
Number.MIN_SAFE_INTEGER | JavaScript中最小的安全整数 |
Number.MAX_SAFE_INTEGER | JavaScript中最大的安全整数 |
数值对象的方法
方法 | 描述 |
Number.parseFloat() | 解析传入的字符串参数,返回浮点型数值 |
Number.parseInt() | 解析传入的字符串参数,返回整型数值 |
Number.isFinite() | 判定传入的值是否为限定的数值 |
Number.isInteger() | 判定传入的值是否为整型数值 |
Number.isNaN() | 判定传入的值是否为“非数字” |
Number.isSafeInteger() | 判定传入的值是否为安全的整型数值 |
Number原型的方法
方法 | 描述 |
toExponential() | 返回该数值的指数形式,以字符串样式表现结果 |
toFixed() | 返回该数值的固定小数位形式,以字符串样式表现结果 |
toPrecision() | 返回该数值指定精度的,字符串样式的结果 |
数学对象
内置Math object
Math.PI
Math.sin(1.56)
方法 | 描述 |
abs() | 绝对值 |
sin(), cos(), tan() | 标准三角函数,参数为弧度 |
asin(), acos(), atan(), atan2() | 反三角函数,返回值为弧度 |
pow(), exp(), expm1(), log10(), log1p(), log2() | 指数,对数 |
floor(), ceil() | 返回小于等于传入参数的最大整数,返回大于等于传入参数的最小整数 |
min(), max() | 返回传入参数列表中的最小、最大值 |
random() | 返回介于0和1,之间的随机数 |
round(), fround(), trunc() | 对传入参数取整,或者切断 |
sqrt(), cbrt(), hypot() | 平方根、立方根、传入参数和的平方根 |
sign() | 数值的符号,指示数值为:负数、整数、零 |
clz32(), imul() | |
sinh(), cosh(), tanh() | 双曲率三角函数 |
asinh(), acosh(), atanh() | 反双曲率三角函数 |
日期对象
// 创建日期对象
var dateObjectName = new Date([parameters]);
- 分和秒:0-59
- 小时:0-23
- 日(Day):0(星期日)-6(星期六)
- 日(Date):1-31(月份中对应的某一天)
- 月份:0(一月)-11(十二月)
- 年份:起始月1900
var Xmas95 = new Date('December 25, 1995');
var today = new Date();
var endYear = new Date(1995, 11, 31, 23, 59, 59, 999); // Set day and month
endYear.setFullYear(today.getFullYear()); // Set year to this year
var msPerDay = 24 * 60 * 60 * 1000; // Number of milliseconds per day
var daysLeft = (endYear.getTime() - today.getTime()) / msPerDay;
var daysLeft = Math.round(daysLeft); //returns days left in the year
var IPOdate = new Date();
IPOdate.setTime(Date.parse('Aug 9, 1995'));
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;
}