是否有一组东西是每个JavaScript程序员都应该知道的,以便能够说“我懂JavaScript”?
当前回答
变量是全局的,除非声明为局部的!!
Bad (DoSomething()只被调用10次):
function CountToTen()
{
for(i=0; i< 10; i++)
{
DoSomething(i);
}
}
function countToFive()
{
for(i=0; i<5; i++)
{
CountToTen();
}
}
CountToFive();
好(DoSomething()按预期被调用50次):
function CountToTen()
{
var i;
for(i=0; i< 10; i++)
{
DoSomething(i);
}
}
function countToFive()
{
var i;
for(i=0; i<5; i++)
{
CountToTen();
}
}
CountToFive();
其他回答
如果你不知道以下内容,你就不懂JavaScript:
闭包 基于原型的继承 模块模式 w3c dom的 事件是如何工作的
如果你想成为一个真正的JavaScript高手,你应该知道完美JavaScript测试中每个问题的答案。
下面这个例子可以让你胃口大开:
(function f(f){
return typeof f();
})(function(){ return 1; });
这个表达式返回什么? “数量” “定义” “功能” 错误
由于JS是一种函数式语言,一个优秀的JS程序员必须能够写出Y-combinator,并能毫不费力地解释它是如何工作的。
每个javascript程序员都应该知道什么?
不如这样,我只需点击两下就能关掉你的努力。所以,如果可能的话,提供一个后备方案。
它可以被禁用。