hey man,你认为你懂Js?

weixin_38063296 2014-04-03 10:55:23
Quick test for real understanding of JavaScript core beyond closures and scopes. Here five small scripts. Try to answer what will be alerted in each case without running them in the console. Then you could create a test file and easily check your answers. Ready? 1)  if (!( "a"  in window)) {  var a  =  1;}alert(a); 2) var a  =  1, b  =  function a(x) { x && a(--x); };alert(a); 3)  function a(x) {  return x  *  2;} var a;alert(a); 4) function b(x, y, a) { arguments[ 2]  =  10; alert(a);}b( 1,  2,  3); 5) function a() { alert( this);}a.call( null); 当当当当~~~~~~~~ 1,2,3题全挂 4,5正确(第5题昨天才看过"use strict"模式下的js表现才答对) 答案: 1) undefined 百思不得其解,主要原因是"a" in window这个表达式因为后面的定义所以为true,所以a无法初始化,但是为毛"a" in window会是true呢? 2) 1,第二题和第三题类似,都不知道原因 3) a的函数表达式 4)这个貌似比较简单吧,arguments数组下标从0开始 5)[object window],js非严格模式下,传null过去this指向的是window对象。严格模式下this就会被禁用了。 帮我解答一下1,2,3题。 
...全文
17 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复

476

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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