一、Math对象
JS中对象:内置对象、宿主对象、自定义对象
对象是属性与功能的集合。例如把张三看做是一个对象,那么他有身高、体重等等特征,那么这就是属性;还有吃饭、学习、救人的功能,这就是方法。
属性和方法的调用
对象.属性
对象.方法()
Math对象属于内置对象,用来执行数学运算
Math对象的属性:
PI 返回圆周率,3.1415926...
Math对象的方法:
abs() 返回绝对值
ceil() 向上舍入
floor() 向下舍入
round() 四舍五入
max() 获取几个值中的最大值
min() 获取几个值中的最小值
random() 获取0-1之间的随机数
pow(x,y) 返回x的y次幂
sqrt() 返回数的平方根
// 获取圆周率 PI console.log(Math.PI);// ==> 3.141592653589793
// abs() 获取绝对值 console.log(Math.abs(-10)); //==> 10 console.log(Math.abs(-10.12)); //==> 10.12
// round() 获取四舍五入的值 console.log(Math.round(10.23));// ==> 10 console.log(Math.round(-10.23));// ==> -10 负号后面的值四舍五入之后,再将负号添加上去 console.log(Math.round(10.83));// ==> 11 console.log(Math.round(-10.83));// ==> -11 console.log(Math.round(-1.2));// ===> -1
// ceil() 向上取整 console.log(Math.ceil(10.23));// ==> 11 console.log(Math.ceil(-10.23));// ==> -10 console.log(Math.ceil(10.83));// ==> -11 console.log(Math.ceil(-10.83));// ==> -10
// floor() 向下取整 console.log(Math.floor(10.23));// ==> 10 console.log(Math.floor(-10.23));// ==> -11 console.log(Math.floor(10.83));// ==> 10 console.log(Math.floor(-10.83));// ==> -11
// random() 获取0-1之间的随机数 console.log(Math.random()); // 获取0-10之间的随机数 var ranNum = (Math.random() * 10).toFixed(2); /*toFixed(num) 设置保留的小数位数,参数num取值0-20之间,执行的是四舍五入*/ console.log("ranNum:"+ranNum); // 获取10-20之间随机整数 ranNum = Math.round(Math.random() * (20-10))+10; console.log("ranNum:"+ranNum); // 获取50-100之间的随机整数
// pow(x,y) 获取x的y次幂 console.log("2的3次方:"+Math.pow(2,3));//==> 2的3次方:8 console.log("2的100次方:"+Math.pow(2,100));//==> 2的100次方:1.2676506002282294e+30
// sqrt() 获取平方根 console.log("4的平方根:"+Math.sqrt(4));//==> 4的平方根:2 console.log("10的平方根:"+Math.sqrt(10));//==>10的平方根:3.162277660168379 // max() min() 获取一系列数字的最大最小值 console.log("10,20,30,40,1,3,100最大值为:",Math.max(10,20,30,40,1,3,100));//==>10,20,30,40,1,3,100最大值为: 100 console.log("10,20,30,40,1,3,100最小值为:",Math.min(10,20,30,40,1,3,100));//==>10,20,30,40,1,3,100最小值为: 1 1 |
练习:
1. 获取10-100之间的随机整数
2. 已知圆的半径r为10,求圆的面积。 公式:π*r² 要求最终保留两位小数
3. 已知圆锥的底面半径r为10,圆锥的高度为100,求圆锥的体积。并将这个结果输出到页面
计算圆锥体积的公式是:体积V=1/3πr2*h
二、运算符的介绍
表达式的构成:由运算元 和 运算符组成;
2.1 算术运算符
+ - * / %(取模,取余) ++(自增) --(自减)
// 算术运算符 + - * / %(取模,取余) ++(自增) --(自减) // 纯数值类型之间运算 // console.log(10+20); // console.log(10-20); // console.log(10*20); // console.log(10/20); // console.log(10%20);
// 数值类型与字符串类型的运算 + 字符串拼接 除+外,数字字符串会默认转成数值类型进行数学运算 // console.log(10+"20");//1020 // console.log("10"+20);//1020 // console.log("10"+"20");//1020 // console.log(10+"hello");//10hello // console.log(10+"hello"+20);//10Hello20 // console.log(10-"20");//-10 // console.log(10-"hello"*20);//NaN
// 数值类型与布尔类型 true隐式转换成1 false隐式转换成0 // console.log(10+true); // console.log(10+false); // console.log(10-true); // console.log(10-false); // console.log(10/true); // 10 // console.log(10/false);// Infinity 无限大 // console.log(10*true);// 10 // console.log(10*false);// 0 // console.log(10%true);//0 // console.log(10%false);//NaN
// null 和 数值类型 null默认转为0进行运算 // console.log(null + 10);//10 // console.log(10 + null);//10 // console.log(10/null);//Infinity
// undefined 和 数值类型 undefined不会进行隐式的转换 // console.log(undefined + 10);//NaN // console.log(10 + undefined);//NaN // console.log(10*undefined);//NaN
// NaN 和其它进行运算 // console.log(NaN-10);//NaN // console.log(NaN+10);//NaN // console.log(NaN - "Hello");//NaN // console.log(NaN + "Hello");//NaNHello
// Infinity 和其它进行运算 console.log(Infinity + "Hello");//InfinityHello console.log(Infinity + "10");//Infinity10 console.log(Infinity + 100);//Infinity console.log(Infinity / 100);//Infinity
console.log(Infinity == Infinity);//true console.log(Infinity === Infinity);//true 1 |
前++ 与 后++ 、 前-- 与 后--
var a = 10, b = 20, //后++ 先执行赋值运算 在自增1 c = a++,//a++ ==> a = a + 1 // c = 10 a = 11 //前++ 先自增1再进行赋值运算 d = ++b,//++b ==> b = b + 1 // d = 21 b = 21 e = --a,//--a ==> a = a -1 // e = 10 a = 10 f = b--;//b-- ==> b = b -1 // f = 21 b = 20 console.log("a:",a,"b:",b,"c:",c,"d:",d,"e:",e,"f:",f);//a: 10 b: 20 c: 10 d: 21 e: 10 f: 21 1 |
2.2 比较运算符
> < <= >= == != === !===
面试题:“=”、“==”、“===”区别
“=” 赋值运算符,进行赋值运算
“==”比较运算符,比较的是两边的值是否相同,忽略数据类型
“===”比较运算符,比较的是两边的值和数据类型是否相同
比较运算符比较的结果是一个布尔值
// console.log(10>20);//false // console.log(10==20);//false // console.log(10 < 20);//true // console.log(10 <= 20);//true 10 < 20 或者 10 == 20 有一个满足条件即可 // console.log(20 >= 20);//true
// 纯数值类型和字符串 // console.log(10 == "hello");//false // console.log(10 == "10");//true // console.log(10 === "10");//false
// 纯数值与布尔值进行比较 // console.log(20 > true);//true // console.log(1 == true);//true // console.log(1 === true);//false // console.log(true >= false);//true
// console.log(10 >= "hello");//false // console.log(10 <= "a");//false // console.log(true < 'A');//false // console.log(10-"a");//NaN // console.log(Number('a'));//NaN
// 字符串数字和纯数值类型的比较 // console.log(10 < "20");//true // console.log(10 < "5");//false // console.log('16' < '5');//true ASCII码 字符串数字的比较,按照字符串中数字出现的顺序逐一按照ACSII码逐一进行比较 // console.log('20' < 'a');//true
// 特殊的比较 // console.log(NaN == NaN);//false // console.log(NaN > NaN);//false // console.log(NaN < NaN);//false // console.log(NaN < 10);//false
// console.log(Infinity === Infinity);//true // console.log(Infinity > Infinity);//false
// console.log(null == undefined);//true // console.log(null === undefined);//false // console.log(null == 0);//false // console.log(null == "");//false 1 |
2.3 逻辑运算符
逻辑与:& &&
逻辑或:| ||
逻辑非 !
&& 、 || 具有短路的效果
&& & 两边值同时为真才为真
|| | 两边只要有一个为真即为真
特殊情况:
其他非布尔值也可以参与逻辑运算,参与的时候,会自动转换成布尔值进行运算,返回的结果就不一定是布尔值。
NaN、0、null、“”、undefined会转换成false参与运算。
非0 数字、非空字符串都会转成true参与运算
// 逻辑运算符 & && | || ! // & && 两边同时为真才为真 // console.log(true && true);//true 1 // console.log(true && false);//false // console.log(false && true);//false 0 // console.log(false && false);//false /* & 与 && 区别: && 具有短路效果,执行效果较高;当左边值为false的时候,直接给出结果false,不再判断右边的值;但是&还会继续判断后面的值 && 布尔值比较结果 为 true 和 false ; & 布尔值比较结果 0 和 1 */
// | || 两个有一个满足即满足 // console.log(true || false);//true 1 // console.log(false || true);//true // console.log(false || false);//false 0 // console.log(true || true);//true
// 逻辑运算符和比较运算符的综合:比较运算符 > 逻辑运算符 // console.log(!true);//false // console.log(!false);//true console.log(10 > 20 && 20 == 30);// false && false console.log(10 <= 20 && 20 == "20");//true && true |
关注微信公众号“icketang”,获取最新前端资讯,学习资料
完整笔记、web前端视频教程,请添加微信“haomei0452”免费领取
B站搜索“爱创课堂网络科技” 免费观看前端视频以及项目实战