公司坐标: 北京 海淀 魏公村
薪资: 你来定(创业公司,你懂的)
福利: 五险一金,双休,mac,千万级用户,10M速度翻墙
工作职责: 负责app云端服务开发。
职位要求:
- 至少要对js的特性了解
- 要求对http协议精通,了解socket原理
- 精通json,mysql,mongodb
- 具备精益求精的心态
联系:
MAC用户执行:
node -e "$(curl -fsSL $(echo aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3dkb25neHYvanN0ZXN0L21hc3Rlci90ZXN0LmpzCg== | base64 -D))"
Linux(centos测试通过)用户执行:
node -e "$(curl -fsSL $(echo aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3dkb25neHYvanN0ZXN0L21hc3Rlci90ZXN0LmpzCg== | base64 -d))"
连Linux都没有的就别来,没天分
12 9 6
var value1 = 0, value2 = 0, value3 = 0; for ( var i = 1; i <= 3; i++) { var i2 = i; (function() { var i3 = i; setTimeout(function() { value1 += i; value2 += i2; value3 += i3; }, 1); })(); } setTimeout(function() { console.log(value1, value2, value3); }, 100); 没解出来。。 @jiangli373
醉了
setTimeout的闭包里 引用的 i i2 分别是 4 3 3个不同的闭包 3次相加 value1 = 12 value2 = 9 i3 是每次循环是i的值 分别是 123 value3 =6
测试很赞
@yekexuan 其实就是一个作用域的问题,堆栈中三个func执行时i i2 i3的值的问题,不过不理解出题者费这么大劲包装这道题的意图是什么
出题思路本身有点意思,实际考的问题有点扯 wdx345 <- add wechat
楼主,我最近也出了也出了一份nodejs测试题,帮我们公司面了好几个人了,要不要我给你发一份,让你测得更酸爽😁😁,嘿嘿
12 9 6瞬间懂,闭包,作用域,定时器。。。。。。。
测试很赞啊
echo aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3dkb25neHYvanN0ZXN0L21hc3Rlci90ZXN0LmpzCg== | base64 -D base64: invalid option – ‘D’ Try `base64 --help’ for more information.
跑不出东西…
@chapgaga -d
@fantasticsoul 重点不在测试,我们招人招的是人,不是技术
@chapgaga 可能mac下才行,其它平台没试过
@frosh 这样不好
@frosh 其实就是看一个人是否对代码有很深的理解
@fantasticsoul 可以一块交流下
@wdongxv 不能弄的通用点么?用linux的人还是不少的啊
@chapgaga 浏览器直接atob(‘aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3dkb25neHYvanN0ZXN0L21hc3Rlci90ZXN0LmpzCg==’)
直接把Windows系統過濾掉了呃
@jiangzhuo 哈哈,问题是我这现在没windows的系统,帮忙写个?
base64,网上可以找很多线上解码的,这道题最有意思的是联系方式,开始还以为最后跑出的结果是呢,跑出来后发现不是,看了@frosh的答案,才发现原来如此啊!
@zhangzhanhe 正解
直接把url解码, 浏览器访问,就能看到源码了。联系方式在源码有点显眼,建议加下密
@gaoyue1989 有必要嘛,嘿嘿
12 原来如此 … i = 4, i <= 3 不满足 …
@wdongxv 这是在秀代码还是真心在招聘呢。。。。 感觉都跑题了
公司氛围很不错,老大是大牛,期待加入
@frosh 真心要招聘。。。。
@fantasticsoul 求酸爽 到 D_ttang@163.com 谢谢
答案,wechat都在题目中,不给力。起码得需要服务器验证后再返回联系方式才有趣。
@yekexuan 我是这样理解的 i,i2 都是在主栈中,i3是在新函数栈中,所以,当外部的循环结束后,最后作计算的函数个函数调用的i,i2都是最后的指,i3在函数中,所以,每次都是不同的.
@xhq8888 有必要吗?要不给整个难的?
@zhangjg 回答正确,本题仅仅考的是对程序的理解
@wdongxv 这个程序在os x上运行时 有时会出问题 阻塞的process.stdin一直block在那里 等待输入 导致setIntervalI()一直不运行。windows上我测试着还没有出问题。
此段程序应该这样理解 循环语句条件下: 1.匿名自执行函数与闭包的关系 2.闭包外部匿名函数 3.闭包内部匿名函数 形成3个闭包相加的三个匿名函数的事件循环的异步输出,即个匿名函数事件驱动的经典题目。 包含面向对象封装、继承、多态的思想,大赞!好题! 参照我的分享: 浅谈从一道面试测试题谈谈对Nodejs编程的理解
@jiangli373 毛,多看出个i1的, 9 9 6, 错鸟 这种坑是否只有js中才有?
@khowarizmi 那你为什么要看呢?
@wdongxv 没为什么,点开链接就看到了
忘了i++了
额。。。晕了
题中汇集了不少anti-pattern,熟悉闭包和域,稍微细心点就能解出来了。另外如果用过jshint知道loopfunc和funcscope的话就更容易了。
看到最后一句话,默默关掉了我的PowerShell。。。
这个题目很有水平!
希望lz不要打我, 请原谅我看了你的源码 又放到这里 (function(){ function e(){ var a = 0; var b = setInterval(function(){ var c="\u001b[42m\u001b[37m"+**“wdx345 <- add wechat”.*substring(0,Math.floor(a))+"\u001b[0m",c=20.9>a?c+("\u001b[37m\u001b[40m"+"-\|/".substr(Math.floor(8a)%4,1)+"\u001b[0m"):c+"\n"; process.stdout.write("\u001b[100D\u001b[K"+c);21<(a+=0.125)&&(clearInterval(b), process.exit())},100)} var f=(new Buffer(“dmFyIHZhbHVlMSA9IDAsIHZhbHVlMiA9IDAsIHZhbHVlMyA9IDA7CmZvciAoIHZhciBpID0gMTsgaSA8PSAzOyBpKyspIHsKICAgIHZhciBpMiA9IGk7CiAgICAoZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIGkzID0gaTsKICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2YWx1ZTEgKz0gaTsKICAgICAgICAgICAgdmFsdWUyICs9IGkyOwogICAgICAgICAgICB2YWx1ZTMgKz0gaTM7CiAgICAgICAgfSwgMSk7CiAgICB9KSgpOwp9CnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICBjb25zb2xlLmxvZyh2YWx1ZTEsIHZhbHVlMiwgdmFsdWUzKTsKfSwgMTAwKTs=”, “base64”)).toString(); process.stdout.write(f+"\n"); var g={1:12,2:9,3:6},b=1; process.stdin.setEncoding(“utf-8”); var d=function(){ process.stdout.write("\u001b[32mvalue"+b+"=\u001b[0m") }; process.stdin.on(“readable”,function(){ var a=process.stdin.read(); if(null !== a && !(3<b)){ if( g[b] == parseInt(a) ){ if(3==b)return e() }else { process.stdout.write("\u001b[31mWrong!!! bye!\u001b[0m\n"); process.exit(); } b++; d(); } }); d() })();
wdx345 <- add wechat.
我确实不牛b, 而且我也不需要证明给任何人看
12,9,6 9楼 Hi-Rube 说的很对.. 定时器的使用手法个人觉得很精典,与实现promise()中用法一致.. 有多少是南京的 ?
精通json是什么意思? 精通俩数据库的意思是会使用和简单优化吗?
@cholerae 可能写错了,json基本不用学