JavaScript 内容总结(JavaScript高级程序设计)
1.作用域
- 代码名字在某个范围内起效果
- 全局作用域:整个script标签 或者是一个单独的js文件
- 局部作用域:在函数内部起效果
- 块级作用域:{ }内部
2.变量的作用域
-
全局变量:全局作用域下的变量,在函数内部没有声明直接赋值的变量,只有浏览器关闭的时候才会销毁,占内存
var a = b = c = 9; //相当于 var a = 9; b = 9; c = 9;
-
局部变量:局部作用域下的变量,比如函数的形参,程序执行完毕销毁,不占内存
3.作用域链
-
内部函数访问外部函数的变量,采取的是链式查找的方式来决定取哪个值,这种结构成为作用域链
var num = 456; function f1(){ var num = 123; f2(); function f2(){ console.log(num);//123 } } f1();
4.预解析
-
js引擎会把js里面所有的var 还有function 提升到当前作用的最前面
-
变量提升
提升变量声明 但不提升赋值
console.log(num);//undefined var num = 456; //相当于 var num = 456; console.log(num);//undefined num = 456;
-
函数提升
f2(); function f2(){ console.log(num);//123 } //相当于 function f2(){ console.log(num);//123 } f2();
-