JavaScript Math对象基本逻辑

一、JavaScript Math对象
 
1.Math.round():返回值是 x 四舍五入为最接近的整数
Math.round(6.8);    // 返回 7
Math.round(2.3);    // 返回 2
 
2.Math.pow():返回值是x的y次幂
Math.pow(8, 2); // 返回 64
 
3.Math.sqrt():返回x的平方根
Math.sqrt(64);      // 返回 8
 
4.Math.abs():返回x的绝对(正)值
Math.abs(-4.7);     // 返回 4.7
 
5.Math.ceil():返回值是x上舍入最接近的整数
Math.ceil(6.4);     // 返回 7
 
6.Math.floor():返回值是x下舍入最接近的整数
Math.floor(2.7);    // 返回 2
 
7.Math.sin():返回角x(以弧度计)的正弦(介于 -1 与 1 之间的值)。
如果您希望使用角度替代弧度,则需要将角度转换为弧度:x PI / 180.
Math.sin(90 * Math.PI / 180);     // 返回 1(90 度的正弦)
 
8.Math.cos():返回角x(以弧度计)的余弦(介于 -1 与 1 之间的值)。
如果您希望使用角度替代弧度,则需要将角度转换为弧度:x PI / 180.
Math.cos(0 * Math.PI / 180);     // 返回 1(0 度的余弦)
 
9.Math.min() 和 Math.max()
Math.min() 和 Math.max() 可用于查找参数列表中的最低或最高值:
Math.min(0, 450, 35, 10, -8, -300, -78);  // 返回 -300
Math.max(0, 450, 35, 10, -8, -300, -78);  // 返回 450
 
10.Math.random()
(1)返回介于 0(包括) 与 1(不包括) 之间的随机小数
Math.random();
(2)随机整数:Math.random() 与 Math.floor() 一起使用用于返回随机整数。
①Math.floor(Math.random() * 10); // 返回 0 至 9 之间的数
②Math.floor(Math.random() * 11); // 返回 0 至 10 之间的数
③Math.floor(Math.random() * 100); // 返回 0 至 99 之间的数
④Math.floor(Math.random() * 101); // 返回 0 至 100 之间的数
⑤Math.floor(Math.random() * 10) + 1; // 返回 1 至 10 之间的数
⑥Math.floor(Math.random() * 100) + 1; // 返回 1 至 100 之间的数
(3)一个适当的随机函数
①返回介于 min(包括)和 max(不包括)之间的随机数
function getRndInteger(min, max) {
    return Math.floor(Math.random() * (max - min) ) + min;
}
②返回介于 min 和 max(都包括)之间的随机数
function getRndInteger(min, max) {
    return Math.floor(Math.random() * (max - min + 1) ) + min;
}
11.Math 属性(常量)
JavaScript 提供了可由 Math 对象访问的 8 个数学常量:
Math.E          // 返回欧拉指数(Euler's number)
Math.PI         // 返回圆周率(PI)
Math.SQRT2      // 返回 2 的平方根
Math.SQRT1_2    // 返回 1/2 的平方根
Math.LN2        // 返回 2 的自然对数
Math.LN10       // 返回 10 的自然对数
Math.LOG2E      // 返回以 2 为底的 e 的对数(约等于 1.414)
Math.LOG10E     // 返回以 10 为底的 e 的对数(约等于0.434)
方法 描述
abs(x) 返回 x 的绝对值
acos(x) 返回 x 的反余弦值,以弧度计
asin(x) 返回 x 的反正弦值,以弧度计
atan(x) 以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切值。
atan2(y,x) 返回从 x 轴到点 (x,y) 的角度
ceil(x) 对 x 进行上舍入
cos(x) 返回 x 的余弦
exp(x) 返回 Ex 的值
floor(x) 对 x 进行下舍入
log(x) 返回 x 的自然对数(底为e)
max(x,y,z,...,n) 返回最高值
min(x,y,z,...,n) 返回最低值
pow(x,y) 返回 x 的 y 次幂
random() 返回 0 ~ 1 之间的随机数
round(x) 把 x 四舍五入为最接近的整数
sin(x) 返回 x(x 以角度计)的正弦
sqrt(x) 返回 x 的平方根
tan(x) 返回角的正切
 
二、JavaScript逻辑
1.Boolean()函数
使用Boolean()函数来确定表达式(或变量)是否为真
Boolean(10 > 9)        // 返回 true
 
2.比较和条件
JS比较这一章列出了完整的比较运算符。JS 条件这一章列出了完整的条件语句。
(1)常见运算符
运算符 描述 实例
== 等于 if (day == "Monday")
> 大于 if (salary > 9000)
< 小于 if (age < 18)
表达式的布尔值是JavaScript比较和条件的基础。
(2)所有具有“真实”值的即为True,如1;
(3)所有不具有“真实”值的即为 False,如0;
var x = 0;
Boolean(x);       // 返回false
(4)-0 (负零)的布尔值为false:
var x = -0;
Boolean(x);       // 返回false
(5)""(空值)的布尔值为false:
var x = "";
Boolean(x);       // 返回 false
(6)undefined 的布尔值是 false:
var x;
Boolean(x);       // 返回 false
(7)null 的布尔值是 false:
var x = null;
Boolean(x);       // 返回 false
(8)false 的布尔值(正如您猜到的)是 false:
var x = false;
Boolean(x);       // 返回 false
(9)NaN 的布尔值是 false:
var x = 10 / "H";
Boolean(x);       // 返回 false
 
3.布尔可以是对象
通常JavaScript布尔是由字面量创建的原始值
var x = false
但是布尔也可以通过关键词new作为对象来定义:
var y = new Boolean(false)
var x = false;
var y = new Boolean(false);
// typeof x 返回 boolean
// typeof y 返回 object
不要创建布尔对象。它会拖慢执行速度。new关键词会使代码复杂化,并产生某些意想不到的结果
当使用 == 运算符时,相等的布尔是相等的:
var x = false;             
var y = new Boolean(false);
// (x == y) 为 true,因为 x 和 y 拥有相等的值
当使用 === 运算符时,相等的布尔是不相等的,因为 === 运算符需要在类型和值两方面同时相等。
 
三、JavaScript比较和逻辑运算符
比较和逻辑运算符用于测试true或false。
1.比较运算符
运算符 描述 比较 返回  
== 等于 x == 8 false  
    x == 5 true  
    x == "5" true  
=== 值相等并且类型相等 x === 5 true  
    x === "5" false  
!= 不相等 x != 8 true  
!== 值不相等或类型不相等 x !== 5 false  
    x !== "5" true  
    x !== 8 true  
> 大于 x > 8 false  
< 小于 x < 8 true  
>= 大于或等于 x >= 8 false 试一试
<= 小于或等于 x <= 8 true 试一

2.逻辑运算符
运算符 描述 例子  
&& (x < 10 && y > 1) 为 true  
|| (x == 5 || y == 5) 为 false  
! !(x == y) 为 true  

3.条件(三元)运算符
JavaScript也包含了可基于某些条件向变量赋值的条件运算符。variablename = (condition) ? value1:value2
var voteable = (age < 18) ? "太年轻":"足够成熟";
如果变量age的值小于18,变量voteable 的值将是 "太年轻",否则变量voteable的值将是 "足够成熟"。