是否有一组东西是每个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程序员都应该知道什么?

不如这样,我只需点击两下就能关掉你的努力。所以,如果可能的话,提供一个后备方案。

它可以被禁用。