return后面的代码不会被执行,return只能返回一个值,并且是最后一个值
没有return则是undefined
return可以退出循环还可以退出函数
在函数外面声明的变量属于全局变量,还有在函数里没有声明直接赋值的也属于全局变量
全局变量只有浏览器关闭的时候才会销毁,比较占内存资源
局部变量 但我们程序执行完毕就会销毁
arguments(是函数里面特有的自带的)可以存储传过来全部实参,是一种伪数组
伪数组具有length属性,还有索引的方式存储
作用域链,在同名变量中使用最近的变量
重点:我们js引擎运行js分为两步: 预解析 代码执行
预解析 js引擎将js中的所有var和function 提升到当前作用域的最前面
预解析分为 变量预解析 和 函数预解析
变量预解析:将所有的变量声明提升,赋值不提升
函数预解析是提升函数声明那种类型
案例:
fn();
console.log(b);
console.log(c);
console.log(a);
function fn() {
var a = b = c = 9;
//var a =9; b=9;c=9;
console.log(b);
console.log(c);
console.log(a);
}
//相当于
function fn() {
var a;
a = 9;
b = 9;
c = 9;
console.log(b);
console.log(c);
console.log(a);
}
fn();
console.log(b);
console.log(c);
console.log(a);