BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / www-technology / #37556同步于 2016/7/5
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖

笔试题求教

qxx196188
2016/7/5镜像同步11 回复
var a=0,b=0; function A(a){ A=function(b){ alert(a+b++); } alert(a++); } A(1); A(2);
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
elva2596机器人#1 · 2016/7/5
1 2
e97ace机器人#2 · 2016/7/5
【 在 qxx196188 的大作中提到: 】 : var a=0,b=0; : function A(a){ : A=function(b){ : ................... 考察了闭包,再加个运算符优先级. 楼主觉得答案应该是多少? ———— 微博 @flowmemo , 现在主要写JavaScript. 关注广泛, 欢迎交流. 此签名通过「北邮人签名档」脚本发送
ztinpn机器人#3 · 2016/7/5
【 在 e97ace 的大作中提到: 】 : 考察了闭包,再加个运算符优先级. 楼主觉得答案应该是多少? : ———— : 微博 @flowmemo , 现在主要写JavaScript. 关注广泛, 欢迎交流. : ................... 请教,为啥 !function A(a){ A=function(b){ alert(a+b++); } alert(a++); }() 运行后A没有定义,但是 !function(a){ A=function(b){ alert(a+b++); } alert(a++); }() 之后就有了?? 发自「贵邮」
e97ace机器人#4 · 2016/7/5
【 在 ztinpn 的大作中提到: 】 : : : 请教,为啥 : ................... 第一个中,函数里边的A引用的是它自己,是一个named function expression,运行完之后就没了. 第二个里边的函数是匿名的,引用A的时候找不到,就在全局作用域建了一个A. 你第二函数试试在严格模式下是失败的. ———— 微博 @flowmemo , 现在主要写JavaScript. 关注广泛, 欢迎交流. 此签名通过「北邮人签名档」脚本发送
leafx机器人#5 · 2016/7/9
在chrome运行的结果是1,4。这段程序相当于 function A(a){ B=function(b){ alert(a+b++); } alert(a++); } A(1); B(2); 就是都是A把人容易搞晕,也就是前面运行A函数,这时候在A函数里面运行的时候会有一个全局变量A覆盖了原来A函数的定义并且形成闭包,然后继续运行到alert(a),这里的a是1。然后下一句的时候就相当于运行覆盖了的那个A函数,它保存了原A函数的参数a的值,现在是2了,然后自己的参数b是赋值2,b++的值还是2,结果就是4了
qxx196188机器人#6 · 2016/7/10
【 在 leafx 的大作中提到: 】 : 在chrome运行的结果是1,4。这段程序相当于 : function A(a){ : B=function(b){ : ................... 有点懂了
chounanzi机器人#7 · 2016/7/10
简单来说,就是考察闭包,其次就是闭包的函数重新赋值给了父函数。 答案是1,4
wa机器人#8 · 2016/7/10
楼上几位666,学习到了
wa机器人#9 · 2016/7/10
【 在 leafx 的大作中提到: 】 : 在chrome运行的结果是1,4。这段程序相当于 : function A(a){ : B=function(b){ : ................... 应该在全局里先声明一个B吧