回答对这道题,所有分给你,看看自己的js能力

d945332077 2012-08-30 01:53:30
加精
var tt = 'aa';
function test(){
alert(tt);
var tt = 'dd';
alert(tt);
}
test();


希望回答过后再去测试,这个题目绝对能考你作用域的概念。网易的一道面试题。反正我是回答错误了
...全文
16487 268 打赏 收藏 转发到动态 举报
写回复
用AI写文章
268 条回复
切换为时间正序
请发表友善的回复…
发表回复
懒惰的恢 2015-04-17
  • 打赏
  • 举报
回复
undefined,dd
渴望做梦 2015-03-02
  • 打赏
  • 举报
回复
经典的题目看过好几遍了,还有一些延伸的版本。
startfire0821 2015-02-28
  • 打赏
  • 举报
回复
学习了
牙膏00 2015-02-06
  • 打赏
  • 举报
回复
上次来错了 ,这次来答对了了,js预编译 惹的祸,有收获~~~
taoxinyulov8 2014-07-30
  • 打赏
  • 举报
回复
以前也经常被迷糊,现在看了下有点了解了,JS本身通过作用域链是可以访问到外部全局变量的,但是在函数内部有重新定义相同变量的话,会破坏作用域链,由于JS的预编译,先输出后定义会undefined,先定义后输出才有值,不用new绑定新对象的话this默认指向最原始的window对象。
汤能睿 2014-07-03
  • 打赏
  • 举报
回复
undefined dd
crystalis 2014-07-02
  • 打赏
  • 举报
回复
当代码在一个环境(变量或函数有权访问的其他数据)中执行时,会创建变量对象的一个作用域链,作用域链的作用是保证对执行环境有权访问的所有变量和函数的有序访问 标识符解析是沿着作用域链一级一级地搜索标识符的过程。 当执行第一个alert的时候,由于当前执行的代码所在环境的变量对象中有标识符t,但是这个标识符是并没有执行赋值操作。因此是undefined的。。。 感觉这个题目主要是考察在js中标识符是如何解析的。
zk1023lang 2014-07-02
  • 打赏
  • 举报
回复
看不懂啊悲催
haorenge 2014-06-30
  • 打赏
  • 举报
回复
我是一个新手,刚学JS 不过我没有错.
qinghetingyu126 2014-06-25
  • 打赏
  • 举报
回复
稍微马虎一点就错了
未来需要奋斗 2014-05-05
  • 打赏
  • 举报
回复
终于搞明白了:
var tt = 'aa';
function test(){
alert(tt);//在此步骤前会先创建函数内部的变量 tt
var tt = 'dd';
alert(tt);
}
test();
函数被运行的时候,首先创建该函数内的变量,所以首先执行的是var tt; 然后是alert(tt);这时候函数内部也即执行环境作用于已经有tt这个变量,所以不回去全局环境作用域去找tt字面量,所以第一个alert不会打印'aa', 第二个打印dd也就理所当然了。 其实最主要的还是js在执行函数的时候预先创建变量的机制
未来需要奋斗 2014-05-05
  • 打赏
  • 举报
回复
终于搞明白了: [code=java ]var tt = 'aa'; function test(){ alert(tt);//在此步骤前会先创建函数内部的变量 tt var tt = 'dd'; alert(tt); } test(); [/code] 函数被运行的时候,首先创建该函数内的变量,所以首先执行的是var tt; 然后是alert(tt);这时候函数内部也即执行环境作用于已经有tt这个变量,所以不回去全局环境作用域去找tt字面量,所以第一个alert不会打印'aa', 第二个打印dd也就理所当然了。 其实最主要的还是js在执行函数的时候预先创建变量的机制。
青鬆下的坚躯 2014-03-28
  • 打赏
  • 举报
回复
引用 2 楼 veryhunger 的回复:
应该是aa,dd吧
+1
skylerzhang 2014-03-27
  • 打赏
  • 举报
回复
这题现在应该是 JS笔试 必备题目吧
QianBiQingNian 2014-03-26
  • 打赏
  • 举报
回复
undefined dd
楔子 2014-01-27
  • 打赏
  • 举报
回复
undefinded dd .作用域问题?
ALeung2015 2014-01-24
  • 打赏
  • 举报
回复
受教了、、、、、
1046838702 2014-01-10
  • 打赏
  • 举报
回复
领教了啊,原理解释的号
zhaodizyx 2013-12-28
  • 打赏
  • 举报
回复

alert(i);
function ff(){
   alert(i);
   alert(z);
   var z="xx";
   alert(z);
} 
ff(); 
var i=3;
var z="dd"; 
ff();
马肠河 2012-09-09
  • 打赏
  • 举报
回复
看似简单的js,其实有很多问题,那些所谓的老鸟也未必搞的懂!
加载更多回复(219)

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧