数组
数组:存储同一种数据类型的多个数据
数组的声明方式:
直接赋值 [3,2,5]
实例化对象 new Array(3,2,4)
实例化 new Array(10) 声明的是数组的长度
判断数组的方法 Array.isArray()
数组的长度 length
数组的角标 从0开始的
改变数组长度的方法
arr.length = num
arr[>原有的数组长度时] 加长数组的长度
遍历数组
for 循环
for in 遍历的是角标
for of 遍历的是值
数组基本方法1
基本方法
push(a,b,c) 向数组后面追加一个或者多个数据
pop() 从末尾处删除一个数据
unshift(a,b,c) 向数组前面添加一个或者多个数据
shift() 向数组前面删除一个数据
递归函数
递归函数: 传递和回归 函数自己调用自己
循环
7以内的整数求和 1+2+3+4+5+6+7
分析:
7 + sum(6)
7 + 6 + sum(5)
7 + 6 + 5 + sum(4)
7 + 6 + 5 + 4 + sum(3)
7 + 6 + 5 + 4 + 3 + sum(2)
7 + 6 + 5 + 4 + 3 + 2 + sum(1)
sum(1) = 1
代码:
function sum(n) {
if(n == 1) return 1
return n + sum(n - 1)
}
document.write(sum(100))
其他例子:
// 阶乘 1*2*3*4*5*6*7
function jc(n) {
if(n == 1) return 1
return n * jc(n - 1)
}
// 斐波拉切数列
// 0、1、1、2、3、5、8、13、21、34
// n = n-1 + n-2
function fb(n){
if(n == 2) return 1
if(n == 1) return 0
return fb(n - 1) + fb(n - 2)
}
// n = 3 fb(2)+fb(1) = 1 + 0 = 1
console.log(fb(6));
回调函数
回调函数:函数的参数是一个函数
function foo(cb) {
其他代码
cb();
其他代码
}
foo(function(){
})
foo(aa)
形参实参
形参和实参是不对等的
考虑到可能没有传实参,给形参默认值 短路赋值 或运算的短路赋值
考虑到可能没有形参,arguments[] 接收实参