ecma262-3执行环境练习
2011-03-19 13:14
267 查看
1 词法作用域
2 作用域链问题 参数>函数声明>变量声明
3顺序
function c1(){return d1++} function a1(){var d1=0;return c1();} console.info(a1()) //d1 undefined c1是在a1外部定义的 //1 错误,变量对象中没找到cc alert(cc) //2 undefined,变量对象中找到了参数cc,但没赋值 var xx=function(cc){ alert(cc) }() //3 错误,变量对象把参数o=undefined var xx=function(o){ alert(o.a) }() //4错误,变量对象把变量声明o=undefined alert(o.a) var o={} //6 undefined,此时执行后o是对象 alert(o.a) //7 错误 ,变量对象把变量声明o=undefined var o; alert(o.a)
2 作用域链问题 参数>函数声明>变量声明
//如果参数已声明,但是没有值的话,就是undefined。 //但是如果参数没有声明,就会向上查找。 //1 undefined,在函数中,变量对象中参数a=undefined,优先使用 var a22=0; var xx=function(a22){alert(a22)}() //2 参数a2=undefined。b2没找到,然后往上找到了=4. var d2=function(a2){ var a2=3,b2=4; var c2=function(a2){ alert(a2) alert(b2) }() }()
3顺序
console.info(typeof ss3) //function var ss3=2 function ss3(){alert("ok")} console.info(typeof ss3) //number //第一个输出为function是因为这个时候下面的代码没执行,在变量对象中,函数ss先声明,类型为function,然后变量ss的声明不能覆盖函数ss。 //第二个输出的ss是number,是因为此时下面的代码已经执行,ss被赋值=2, //如有不明白请看 http://www.javaeye.com/topic/812668[/code]
4 块级声明//ff =1 ie=2. ff中可以在块级中声明? function f(){ alert(1)}; f(); if(1) { function f() { alert(2) } } --------------------------------------- for(var i4=0;i4<5;i4++){if(i4=3)break} alert(i4) //i4是全局作用域
5 匿名函数与命名函数//解决在块级元素中函数声明的办法,这样在ff和ie下都是first --- var foo; if (true) { foo=function() { return 'first'; } } else { foo=function () { return 'second'; } } alert(foo())
相关文章推荐
- ECMA-262-5 词法环境:ECMA实现(三)--- 执行上下文
- ecma262-3执行环境
- [JavaScript]ECMA-262-3 深入解析.第一章.执行上下文
- 理解 ECMAScript 262 5th 执行环境一些概念
- ECMA-262-5 词法环境:通用理论(三)--- 标识符绑定
- Dave Python 练习十六 -- 执行环境
- DS.Lab筆記 - ECMA-262-5 - 文法环境概论
- ECMA-262-5 词法环境:ECMA实现(一)--- 简介
- Dave Python 练习十六 -- 执行环境
- ECMA-262-5 词法环境:通用理论(四)--- 环境
- ECMA-262-5 词法环境:ECMA实现(二)--- 环境记录项
- Dave Python 练习十六 -- 执行环境
- 《Python核心编程》第14章 执行环境 练习
- Dave Python 练习十六 -- 执行环境
- [JavaScript]ECMA-262-3 深入解析.第一章.执行上下文
- Dave Python 练习十六 -- 执行环境
- ECMA-262-5 词法环境:ECMA实现(四)--- 标识符解析及其他
- JavaScript函数代码和执行上下文--ECMA-262-5
- ECMA-262-5 词法环境:通用理论(一)--- 作用域
- ECMA-262-5 词法环境:通用理论(二)--- 动态作用域