作用域
可以使用全局变量,全局变量不能用函数中的变量
预解析
在代码执行之前 对代码进行通读并且解释:
-
var 声明的变量名=> 仅仅是对var 声明的变量提前声明 暂时不赋值
-
声明式的函数 => 对函数名字提前声明 并且直接给这个函数名赋值了 一个函数
-
赋值式的函数按照 var 变量的规则进行 解释
打开浏览器 只会解析全局代码 ,不对函数内的代码进行预解析,函数内的代码 仅仅会在函数调用的时候才会 预解析
变量
console.log(num);
var num = 100;
console.log(num);
打开浏览器
1 . console.log(num);
2. var num = 100;
3. console.log(num);
预解析
1 .不需要
2. 需要预解析 告诉浏览器 定义了一个叫做num的变量 但是不赋值
3. 不需要
代码执行
1. console.log(num); 因为预解析的时候仅仅是 声明 但是没有赋值
所以结果是undefined
2. num = 100
3 打印num 的值输出到控制台
等价于下面代码
var num;
console.log(num);
num = 100;
console.log(num);
函数
函数
fn()
function fn(){console.log('卧榻之侧岂容他人鼾睡')}
fn()