JavaScript基础学习--08 JS作用域
Demos: https://github.com/jiangheyan/JavaScriptBase 一、浏览器 1、“JS解析器”(至少分为两步骤) 1.1 JS预解析(代码正式运行之前的准备工作) “找一些东西并形成一个 仓库 ”:var、function、参数 1.1.1 var a = 1; 找到var a = undefined (所有的变量在正式运行代码之前,都提前赋值:未定义;--》undefined) 1.1.2 function fn(){ alert(......); } 找到fn = function fn(){ alert(......); } (所有的函数在正式运行之前都是整个函数块) 1.1.3 预解析规则 : 1.1.3.1 遇到 重名 的: 只留一个 ------变量和函数重名,选择留下函数;同等级的留下后面那个(两个变量重名留后者;两个函数重名留后者) 1.1.3.2 表达式可以修改仓库中的值 1.1.3.2.1 表达式:+-*/ Number()...... 注意:函数只是一个声明,不是表达式 1.2 逐行解读代码 1 alert(a); // function a(){alert(4);} 2 var a = 1; // 表达式能改变仓库中(预解析仓库)的值---> a = 1 3 alert(a); // 1 4 5 function a(