”JavaScript中的函数运行在它们被定义的作用域里,而不是它们被执行的作用域里.”
全局作用域(Global Scope)
最外层函数和变量
在代码中任何地方都能访问到的对象拥有全局作用域
window对象的属性拥有全局作用域
vara=10; // 全局作用域链(Scope Chain) 在 JavaScript 中,函数也是对象,实际上,JavaScript里一切都是对象
(function(){
var b=20; // 函数
})();
console.log(a); // 10
console.log(b); // error, b in not defined
eval("var a = 1; "); // eval
eg: 在调用func的时候, 会创建一个活动对象(假设为aObj, 由JS引擎预编译时刻创建, 后面会介绍),并创建arguments属性,
然后会给这个对象添加俩个命名属性aObj.lps, aObj.rps; 对于每一个在这个函数中申明的局部变量和函数定义,
都作为该活动对象的同名命名属性.
然后将调用参数赋值给形参数,对于缺少的调用参数,赋值为undefined。
var name = 'laruence';undefined//alert定义时的作用域链+alert自己参数+函数内均无name
function echo() {
alert(name);
var name = 'eve';
alert(name);
alert(age); }
echo();
try-catch语句中的catch块
with语句
函数参数 (若未传入,初始化该参数值为undefined)
函数声明 (若发生命名冲突,会覆盖)
变量声明 (初始化变量值为 undefined,若发生命名冲突,会忽略。)
”JavaScript中的函数运行在它们被定义的作用域里
而不是它们被执行的作用域里.”vara=10; // 全局
(function(){
var b=20; // 函数
上一篇:年味真的是越来越淡了么
下一篇:综合勘查