1.Math数学函数(背就完事了)
数学函数︰但是它不是一个函数,它是一个对象,对象中存储了很多操作数字的属性方法,因此被称为数学函数
console.log(typeof Math); //object
console.dir(Math)//输出如下图
console.log(Math.PI);//3.141592653589793
console.log(Math.abs(111.11));//绝对值absolute
Math中常用的属性和方法
1.1.Math.abs([number value])
获取绝对值
传递的不是数字类型的值:先基于Number()转换为数字再处理
console.log(Math.abs( '-1')); 1
console.log(Math.abs( ' -1px')); NaN
console.log(Math.abs(true) ); 1
1.2.Math.ceil / Math.floor([number value])
向上(ceil),向下(floor)取整
console.log(Math.ceil(12)); 12
console.log(Math.ceil(12.1)); 13
console.log(Math.ceil(12.9)); 13
console.log(Math.ceil(-12.1)); -12
console.log(Math.ceil(-12.9)); -12
console.log(Math.floor(12)); 12
console.log(Math.floor(12.1)); 12
console.log(Math.floor(12.9)); 12
console.log(Math.floor(-12.1)); -13
console.log(Math.floor(-12.9)); -13
1.3.Math.round()四舍五入
正数中1.5属于入,负数中.-1.5属于舍
Math.round(-1.5);//-1
console.log(Math.round(1.5));//2
console.log(Math.round(1.1));//1
console.log(Math.round(-1.5));//-1
console.log(Math.round(-1.1));//-1
1.4.Math.min()/Math.max() 求最大最小
console.1og(Math.max(12,5,68,23,45,3,27)); 68
console.1og (Math.min(12,5,68,23,45,3,27)); 3
思考题:如何基于Math.max/min获取数组中的最大值最小值?(以后讲)
Math.max([12,5,68,23,45,3,27]); NaN
此处是只传第个值,是个数组,和内置的语法要求不符
1.5.Math.sqrt()开方 /Math.pow()平方
console.log(Math.sqrt(9)); 3 符合N*N=M这样的M才能整开平方
console.log(Math.sqrt( -9)); NaN 负数开不了平方
console.log(Math.pow(2,10)); 2的10次方 1024
1.6.Math.random(),获取0~1之间的随机小数
console.log(Math.random()); //
扩展︰获取[n~m]之间的随机整数,包含n和m
Math.round(Math.random() * (m - n) + n)
2.数组常用的方法(背就完事了)
键值对+长度
1.方法的作用和含义
2.方法的实参(类型和含义)
3.方法的返回值
4.原来的数组是否会发生改变
let ary = [12, 23, 34, 45];
console.log(typeof ary); "object"
console.dir(ary);
2.1增删改的方法
push:向数组末尾增加内容
参数:多个任意类型
返回值:新增后的数组长度
let ary = [12, 23, 34, 45];
console.log(typeof ary); "object"
console.dir(ary);
console.log(ary.push(88,66)); //6
console.log(ary.push([88,'AA',{name:'zhangsan'}]));//7
ary[100]=1;
console.log(ary);
unshift:向数组开始增加内容
参数:多个任意类型
返回值:新增后的数组长度
…ary:基于原生ES6展开运算符,把原有的ARY克隆一份,在新的数组中创建第一项,其余的内容使用原始ARY中的信息即可,也算实现了向开始追加的效果…
ary1=[100,200];
ary2=[...ary1,300,400]
console.log(ary2); // [100, 200, 300, 400]
shift:删除第一项
参数:无
返回值:被删除的数据
ary1 = [100, 200];
ary2 = [...ary1, 300, 400]
console.log(ary2.shift()); // 100
console.log(ary2); // [200, 300, 400]
delete ary2[0];
console.log(ary2); [empty, 300, 400] length=3
基于原生JS中的DELETE,把数组当做普通的对象,确实可以删除掉某一项内容,但是不会影响数组本身的结构特点(length长度不会跟着修改),真实项目中杜绝这样的删除使用
pop:删除最后一个
参数:无
返回值:被删除的数据
ary2 = [100, 200, 300, 400]
console.log(ary2.pop()); // 100
console.log(ary2); // [100,200, 300]
或者基于原生js
ary.length--;
splice():增删改都可以
参数:
- n,m都是数字从索引 n开始删除m个元素(m不写,是删除到末尾)
- n,m, x从索引n开始删除m个元素,用x占用删除的部分
- n,0,x从索引n开始,一个都不删,把x放到索引n的前面
返回值:把被删除的数据用新数组返回
ary2 = [0, 1, 2, 3, 4, 5, 6]
console.log(ary2.splice(2, 4)); //[2, 3, 4, 5]
// 从下标2开始向后删除4个
ary2.splice(0)//清空数组
console.log(ary2); // [0, 1, 6]
删除最后一项和第一项
ary.splice( ary.length - 1)
ary.splice(0,1);
ary2 = [0, 1, 2, 3, 4, 5, 6]
console.log(ary2.splice(4,0,'4的前面增加')); // []
console.log(ary2); // (8) [0, 1, 2, 3, '4的前面增加', 4, 5, 6]
2.2查询、拼接方法
背。。。。