1 var a = b = 1; 在function 中写会造成变量的全局泄漏 b //挂在window 上
2 斐波拉切数列
// 1 1 2 3 5 8 13 21
// n1 n2 n3
// n1 n2 n3
// n1 n2 n3
// n1 n2 n3
let n1 = 1;
let n2 = 1;
let n3;
let n = Number(window.prompt('请输入n有效值'))
if (n <= 0) {
alert('undifiend')
} else {
if (n <= 2) {
n1 = n2 = 1
}
for (let i = 0; i < n; i++) {
n3 = n1 + n2;
n1 = n2;
n2 = n3;
}
console.log(n3)
}
3 函数表达式(匿名函数表达式/函数字面量)
let test = function test1(){
let a = 1,b = 2;
cosole.log(a, b)
test1() // 闭包
}
test1() // is not defined 在外部调用是忽略掉的
4 funtion test(a,b){
cosole.log(test.length) // 形参长度 2
cosole.log(arguments.length) // 实参长度 3
}
test(1, 2, 3)
5 实参传了值 在形参可以修改值, 没有传值在形参中修改是undefined
var a =1
function test(a,b){
console.log(a)
console.log(b)
a = 2;
b = 22;
// a 和arguments[0]
console.log(a, arguments[0])
console.log(b, arguments[1])
}
test(a)
console.log(a)