也谈谈年度最佳代码“不管你们信不信,反正我信了”
在老赵的微博 http://blog.zhaojie.me/2011/08/from-the-code-of-no-matter-you-believe-it-or-not.html 中, 有这样一段代码示例.
if (you.believe(it) == true || you.believe(it) == false) { I.believe(it); }
并且讲解了为什么I.believe(it)是不一定会执行到的, 这确实是个小trick, 很容易让人感觉这个判断是永真的。
我也写了个js程序来模拟这个:
function a(){ var n = true; function closure(){ n=!n; //print(n); return n; } return closure;}var believe = a();if(believe()==true||believe()==false){ print("I.believe.it");}else{ print("I.NOT.believe.it");}
后来发现不需要用闭包 因为本身js在处理全局变量的时候就是闭包
var n = true;function a(){ n=!n; print(n); return n;}if(a()==true||a()==false){ print("I.believe.it");}else{ print("I.NOT.believe.it");}