math对象的函数:
1.Math.floor() 向下取整
console.log(Math.floor(4.8)) //4
2.Math.celi() 向上取整
console.log(Math.ceil(6.4)) //7
3.Math.round() 四舎五入
console.log(Math.round(5.4)) //5
4.Math.max() 求最大值
console.log(Math.max(5,8,9)) //9
5.Math.min() 求最小值
console.log(Math.min(9,3,1)) //1
6.Math.pow()
求幂次方两个参数:第一个是底数,第二个是指数
console.log(Math.pow(2,10)) //2的10次方:1024
7.Math.sqrt() 开平方
console.log(Math.aqrt(16)) //4
//已知直角三角形两条直角边(a, b),求斜边(c):
vara,b;
c= Math.sqrt(Math.pow(a,2) + Math.pow(b,2))
8.Math.abs() 求绝对值
console.log(Math.abs(-3)) //3
9.Math.randon() 取( 0<= x < 1 )的随机数
//取0 <= x <= 30之间的随机整数
console.log( Math.floor(Math.randon()*31) )
//取20 <= x <= 30之间的随机整数
console.log(Math.floor(Math.randon()*11+20) )
//封装一个函数,取某个范围内的随机值
function f(strat,end){
var count=end-start+1;
return Math.floor(Math.randon()*count + start)
}
数组:
1.概念特点:
1.因为JS是弱类型的的,所以数组元素可以是任何类型的(同一个数组中的元素也可以是不同类型,不推荐)
2.数组大小可以改变
3.索引(index)基于0
2.创建数组
1.数组字面量创建:
var array=[]; 创建一个空数组,数组名array
var array1=[1,3,5,7,9]; 创建一个长度为5的奇数数组
2.调用数组的构造函数创建
var empty = newArray(); 创建一个空数组,数组名empty
var array = newArray(2,4,6); 创建一个长度为3的偶数数组
3.数组的访问:
- 单个访问:
array[index] (index为:0,1,2,3,4….从0开始)
console.log(array1[2]); //5
console.log(array1[6]); //undefined
array1[5] = 10; //数组array1在索引5处增
//加一个元素10
array1[8] = 13; //数组索引6,7跳过为索引8赋值,输出时索引6,7显示undefined,索引8显示13
- length属性:代表数组的长度 ```javascript console.log(array1.length); //5
//该属性可读可写: array1.length = 10; console.log(array1.length); //10
3. 数组的遍历:
```javascript
//for:
for(vari=0;i<array1.length;i++){
console.log(array1[i])
}
//for in:
for(var j in array1){
console.log(array3[j])
} // array1 是遍历时得数组,j是遍历时的索引
//for in 遍历一个对象的属性:
var student={};
student.name = 'lay';
student.age = '27';
for(var property in student){
console.log(property); //显示 name age
console.log(student[property]); //显示 lay 27
console.log(student); //显示对象的属性内容{name: "lay", age: "27"}
} //其中 property为声明的变量,可以改变
4.二维数组 :
创建:
var array = [
[1,3,4],
[3,4,5],
[4,5,6],
] //数组字面量创建å
var array = newArray([1,3,4],[3,4,5],[4,5,6]) //调用数组的构造函数
访问: ```javascript //单个元素访问array[rowIndex][colIndex] array[2][2] //数组array第3行第3列的元素
//某行元素访问 console.log(array[0] ) //数组array第1行的元素
//遍历: 两层循环,可以遍历所有元素 for(vari=0;i<array.length;i++){ for(varj=0;j<array[i].length;j++){ console.log(array[i][j]); } }
<a name="s2MG4"></a>
#### 4.数组对象的方法:
<a name="bMULq"></a>
##### 1.reverse()
将数组中的元素反转
```javascript
console.log(array1); //1,3,5,7,9
array1.reverse();
console.log(array1); // 9,7,5,3,1
2.splice( a ,b,x,y,z…)
a: 开始操作的索引位置
b: 删除的元素的个数
xyz: 要在开始操作位置插入的元素
从中间位置删除某些元素
var array=[2,4,6,8,10];
array.splice(2,2); // 删除array中的 6,8
console.log(array); // 2 4 10
从中间位置添加某些元素
array.splice(2,0,1,3,5); //在索引2处删除0个元素再加入1,3,5
console.log(array); // 2,4,1,3,5,6,8,10
将数组中的某一段替换掉
array.splice(1,2,1,3,5)
console.log(array); // [2, 1, 3, 5, 8, 10]
3.join(分隔符)
将数组中的元素,转换成字符串,进行连接。连接的分割符由参数指定
返回值:字符串
参数:分隔符分隔符可以是,-。< …var array1 = array.join('<');
console.log(array1); // '2<1<3<5<8<10'
4.a.concat(b)
将数组a,与数组b连接。
var array2 = array.concat(array1)
console.log(array2); // [2, 1, 3, 5, 8, 10, "2<1<3<5<8<10"]
5.slice( a,b)
将数组进行截取,从开始位置截取到结束位置。不包含结束位置
a: 开始操作的索引位置
b: 结束操作的索引位置 ```javascript console.log(array); // [2, 1, 3, 5, 8, 10] array3 = array.slice(2,5);
console.log(array3); //[3, 5, 8] console.log(array); // [2, 1, 3, 5, 8, 10]
//如果一个参数也不传递,则得到的时整个数组的一个副本 array3=array.slice(); console.log(array3); // [2, 1, 3, 5, 8, 10]
//如果只传递一个参数,则该参数是开始位置,则从开始位置一直截取到数组的最后 array3=array.slice(1) console.log(array3); //[1, 3, 5, 8, 10]
//参数可以负数,代表倒数第几个 array3=array.slice(-3,-1) console.log(array3); //[5, 8]
<a name="ZbHfV"></a>
##### 6.indexOf(x,a)
判断x在数组中是否存在。如果存在,返回其在数组中的索引,否则,返回-1;indexOf只返回第一个匹配元素所在位置<br />**lastIndexOf(x,a)** 倒着查找<br />x:需要索引的内容<br />a:开始查找的位置
```javascript
var array=[2,4,3,6,8,10,3,5,7];
console.log(array.indexOf(3) ) //2
console.log(array.indexOf(3,2) ) //2
console.log(array.indexOf(3,3) ) //6
console.log(array.lastIndexOf(3) ) //6
console.log(array.lastIndexOf(3,3) )//2