函数封装使用
-
先创建common.js文件
例子:
/*
*author:xxx
*作用:获取非行间样式和行间样式
*params elem 标签
*params attr String 样式名
*/
function getStyle(elem,attr){
if(window.getComputedStyle){ //标准浏览器
return window.getComputedStyle(elem)[attr];
}else{//IE低版本浏览器
return elem.currentStyle[attr];
}
}
-
然后在页面中使用
<script src="./common.js"></script> 用script标签引入js文件
<body>
<div style="color: red;font-size: 20px;"></div>
<script>
console.log(getStyle)
var oDiv = document.getElementsByTagName("div")[0]
var a = getStyle(oDiv, "color");
console.log(a);
var b = getStyle(oDiv, "fontSize");
console.log(b);
</script>
</body>
Math对象:
对象概念
-
对象: 在JS中万物皆对象,可以将对象分为“内部对象”、“宿主对象”和“自定义对象”三种。
-
本地对象「内部对象」:JS中的内部对象包括Array、Boolean、Date、Function、Global、 Math、Number、Object、RegExp、String,Error对象, 其中Global和Math这两个对象又被称为“内置对象”,这两个对象在脚本程序初始化时被创建,不必实例化这两个对象。
-
宿主对象:宿主对象就是执行JS脚本的环境提供的对象,就是浏览器提供的对象,如window和document
-
自定义对象
-
-
API
-
API,全称Application Programming Interface,即应用程序编程接口。说白了就是别人提供好的函数,但是这些函数都是封装好的,固定功能的,可以直接调用实现功能的。 例如遥控器,不同的按键不同的功能,都是提前定义好的
-
5.1 取整
-
parseInt 强制转换Number类型 从左往右开始转换 遇到不能转换的或者末尾结束 如果一开始就不能转换则是NaN 结果取整
-
Math.floor 向下取整 舍弃小数部分
-
Math.ceil 向上取整 有小数就进位
-
Math.round 四舍五入 取整
-
- 例子:
<script>
// 1.Math对象 是内置对象 不需要实例化即可使用
console.log(Math);
// 2.取整
// parseInt 强制转换Number类型 从左往右开始转换 遇到不能转换的或者末尾结束 如果一开始就不能转换则是NaN 结果取整
console.log(parseInt("123px"));//123
console.log(parseInt("10.5px"));//10
console.log(parseInt("adc123"));//NaN
// Math.floor 向下取整 舍弃小数部分
console.log(Math.floor(10.5));// 10
console.log(Math.floor(10.9));// 10
console.log(Math.floor(3.9999999));// 10
console.log(Math.floor(3.000000000001));// 10
// Math.ceil 向上取整 有小数就进位
console.log(Math.ceil(10.5));//11
console.log(Math.ceil(10.1));//11
console.log(Math.ceil(3.9999999));//4
console.log(Math.ceil(3.00000001));//4
// Math.round 四舍五入 取整
console.log(Math.round(3.4)); //3
console.log(Math.round(3.5));// 4
console.log(Math.round(3.00000001));//3
console.log(Math.round(3.09999001));//3
</script>
5.2 数学方法
-
Math.max(数值1,数值2......) 找序列中最大的值
-
Math.min(数值1,数值2......) 找序列中最小的值
-
Math.abs( ) 取绝对值
-
Math.sqrt( ) 开根号
-
Math.pow(num,n) 次方幂 num底数 n n次幂
// 1.数学方法
// Math.max(数值1,数值2......) 找序列中最大的值
console.log(Math.max(1,2,3,4,5));//5
// Math.min(数值1,数值2......) 找序列中最小的值
console.log(Math.min(1,2,3,4,5));//1
// Math.abs 取绝对值
console.log(Math.abs(-10));// 10
// Math.sqrt() 开根号
console.log(Math.sqrt(9));//3
console.log(Math.sqrt(81));//9
// Math.pow(num,n) 次方幂 num底数 n n次幂
console.log(Math.pow(2,10));// 1024
console.log(Math.pow(10,2));// 100
5.3 随机数
-
Math.random() 随机生成0-1之间的数 包括0 不包括1
-
公式 生成min到max之间的随机数
-
Math.random() * (max-min+1) + min
-
<script>
var a = Math.random(); //随机0-1之间的数
console.log(a);
//1. 随机1-10之间的数据 Math.random() * (max-min+1) + min
var b = Math.floor( Math.random() * 10 + 1 ) // [1 11]
console.log(b);
</script>
随机抽奖案例:
var arr = ["玛莎拉蒂","宾利","北京2套房","上海汤臣一品","十月一能买到车票回家"]
// 0-4(arr.length-1) 求0到arr.length-1之间的随机数
var index =Math.floor( Math.random() * (arr.length-1-0+1) + 0 );
console.log(arr[index])