1.return返回值:函数执行后剩下结果就是返回值。
javascript
function fn(a,b,c){
//return返回值
return(a+b+c);
// console.log("aaa"); //return之后的值都不在执行了
// alert("bbb"); //return之后的值不在执行了
}
console.log(fn(1,2,3)*10);
2.作用域
查找变量的时候,会从当前作用域开始查找,如果当前作用域查找不到,逐层(外层)向上查找
2.1全局作用域
javascript
var a = 1; //全局变量,在任何位置都可以找到的变量
function fn(){
console.log(a);
}
fn();
console.log(a);

2.2局部作用域
javascript
function fn(){
var a = 1; //局部变量,只能在当前的作用域里面使用
console.log(a);
}
fn();
console.log(a);

2.3隐式全局变量
在函数体内部,没有使用var声明的变量
javascript
function fn(){
var a = 1;
b = 2; //隐式全局变量
}
fn();
//隐式全局变量,会在当前函数体调用以后,变成全局变量
console.log(b); //2
console.log(a); //报错
var a = b = 1;
javascript
function fn(){
var a = b = 1;
//var a,b,c=1; 只有c被赋值了
// var a = 1; 局部变量 相当于
// b = 1; 隐式全局变量
}
fn();
console.log(b); //1
console.log(a); //报错
3.变量的生命周期
全局变量和局部变量都是从被声明时开始;全局变量,直到页面关闭以后结束;局部变量,所在函数体调用以后结束
3.1全局变量生命周期
javascript
var a = 10; //全局变量
function fn(){
a++;
console.log(a);
}
fn();
fn();
fn();

3.2局部变量生命周期
javascript
function fn(){
var a = 10; //局部变量
a++; //运行一次之后此行和上一行失效
console.log(a);
}
fn();
fn();
fn();

3.3释放内存 delete删除
一个页面当中,局部变量多更好,局部变量用完可以及时删除,自动释放内存,全局变量会一直在很占内存
javascript
// delete删除
var a = 1;
b = 2;
delete a;
delete b;
console.log(a); //1, a没被删除
console.log(b); //报错,b被删除了
//显示全局变量无法通过delete删除