函数练习
作用域
js中没有块级作用域,在js中定义的变量 其他地方也可以使用,
除了函数定义的变量,其他地方不能使用
隐式全局变量: 声明的变量没有 var,就叫隐式全局变量;
全局变量是不能被删除,隐式全局变量可以被删除
定义变量使用var是不会被删除的,没有var是会被删除
delete 删除
预解析
预解析中,变量的提升,只会在当前的作用域中提升,提前到当前的作用域的最上面
//函数中的变量只会提前到函数的作用域中的最前面,不会出去
//预解析会分段(多对的script标签中函数重名,预解析的时候不会冲突)
// function f1() {
//
// console.log(num);//undefined
// var num=10;
// }
// f1();
// console.log(num);//
再多对的script里面 重名函数不会冲突
数组的反转
function f1(arr) {
var temp;
for (var i = 0; i < arr.length / 2; i++) {
temp = arr[i];
arr[i] = arr[arr.length - 1 - i];
arr[arr.length - 1 - i] = temp;
}
return arr;
}
console.log(f1([1, 2, 3, 4, 5]));
只要对调数组次数的一半长度
斐波那契列
function gitFib(num) {
var num1 = 1;
var num2 = 1;
var sum = 0
for (var i = 3; i <= num; i++) {
sum = num2 + num1;
num1 = sum - num1;
num2 = sum;
}
return sum;
}
当不知道用户传入参数的多少适应吧 arguments 伪数组
function f1() {
var sum = 0;
for (var i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum;
}
console.log(f1(10, 20, 300));