小编KMc*_*McA的帖子

我何时使用null初始化JavaScript中的变量?

我已经看到了声明变量并设置为undefined和null的不同代码示例.如:

var a; // undefined - unintentional value, object of type 'undefined'
var b = null; // null - deliberate non-value, object of type 'object'
Run Code Online (Sandbox Code Playgroud)

如果遵循这些声明的代码为a或b赋值,那么使用一种声明而不是另一种声明的原因是什么?

javascript variables null undefined

36
推荐指数
4
解决办法
5万
查看次数

Javascript中的斐波纳契数列

我对编程很新,并且很难理解这个Fibonacci序列示例:

var fib = [0, 1];
for (var i = 2; i < n; i++) {
    fib[ i ] = fib[ i - 1 ] + fib[ i - 2 ];
    console.log(fib);
}
Run Code Online (Sandbox Code Playgroud)

在第一次迭代中,索引2等于1,足够简单.但是,当我尝试i = 3的第二次迭代时,我得到:

fib[ 3 ] = fib[ 3 - 1 ] + fib[ 3 - 2 ];  
fib[ 3 ] = fib[ 2 ] + fib[ 1 ]; 
fib[ 3 ] = fib[ 3 ];
Run Code Online (Sandbox Code Playgroud)

我的思维在哪里出错了?到目前为止,我有:

var fib = [0,1,1,3]
Run Code Online (Sandbox Code Playgroud)

我知道这是不正确的.

javascript fibonacci

7
推荐指数
1
解决办法
6888
查看次数

难以区分Rspec的'let'与'let!'

我已经阅读了rspec文档,并搜索过其他一些地方,但我很难掌握Rspec let和Rspec之间的区别.let!

我已经读过,let在需要之前它没有被初始化,并且它的值仅在每个示例中被缓存.我还读过,let!强制变量立即存在,并强制调用每个例子.我想因为我是新手,所以我很难看到这与下面的例子有什么关系.为什么:m1需要设置let!为assert m1.content存在于页面上,但:user可以设置let为断言该页面包含text: user.name

  subject { page }

  describe "profile page" do
    let(:user) { FactoryGirl.create(:user) }
    let!(:m1) { FactoryGirl.create(:micropost, user: user, content: "Foo") }
    let!(:m2) { FactoryGirl.create(:micropost, user: user, content: "Bar") }

    before { visit user_path(user) }

    it { should have_selector('h1',    text: user.name) }
    it { should have_selector('title', text: user.name) }

    describe "microposts" do
      it { should have_content(m1.content) }
      it …
Run Code Online (Sandbox Code Playgroud)

rspec let

6
推荐指数
1
解决办法
3327
查看次数

Eloquent Javascript的findSequence澄清

我仍然坚持以下功能,这个功能出现在我还评论过的其他一些帖子中.

function findSequence(goal) {
  function find(start, history) {
    if (start == goal)
      return history;
    else if (start > goal)
      return null;
   else
      return find(start + 5, "(" + history + " + 5)") ||
             find(start * 3, "(" + history + " * 3)");
 }
  return find(1, "1");
}

print(findSequence(24));
Run Code Online (Sandbox Code Playgroud)

也在此链接中给出.

Javascript ..在本教程中完全丢失了

在上面的解释中,答案试图将目标设定为11.它们的起点为1,首先针对11进行测试,然后是针对11进行测试的6的开始.

我理解前两个步骤.但是,我不理解从第二步(比较start:6到goal:11)到第三步(比较start:3到goal:11)的飞跃.

如何start从6,回到3,然后回到11(第四个子弹)?

javascript recursion

5
推荐指数
1
解决办法
302
查看次数

了解Eloquent Javascript的Reduce功能

Eloquent Javascript中,作者要求读者编写一个函数countZeroes,该函数将数字数组作为其参数,并返回其中出现的零的数量,作为使用reduce函数的另一个示例.

我知道

  • reduce函数的概念是采用数组并将其转换为单个值.
  • 三元运算符正在做什么,这是函数的基本部分.

我不知道

  • 计数器函数的参数来自何处.

从书中:

function countZeroes(array) {
  function counter(total, element) { // Where are the parameter values coming from?
    return total + (element === 0 ? 1 : 0);
  }
  return reduce(counter, 0, array);
}
Run Code Online (Sandbox Code Playgroud)

早期的例子来自文本:

function reduce(combine, base, array) {
 forEach(array, function (element) {
    base = combine(base, element);
  });
  return base;
}
Run Code Online (Sandbox Code Playgroud)

javascript reduce

5
推荐指数
2
解决办法
3469
查看次数

Ruby的send方法使用块变量插值

我是一个熟悉Ruby教程的新手,并且对使用send下面的方法感到困惑.我可以看到send方法正在读取属性迭代器的值,但Ruby文档声明send方法采用前面带有冒号的方法.所以,我的困惑在于下面的send方法是如何内插迭代的属性变量.

module FormatAttributes
  def formats(*attributes)
    @format_attribute = attributes
  end

  def format_attributes
    @format_attributes
  end
end

module Formatter
  def display
    self.class.format_attributes.each do |attribute|
      puts "[#{attribute.to_s.upcase}] #{send(attribute)}"
    end
  end
end

class Resume
  extend FormatAttributes
  include Formatter
  attr_accessor :name, :phone_number, :email, :experience
  formats :name, :phone_number, :email, :experience
end
Run Code Online (Sandbox Code Playgroud)

ruby interpolation send

5
推荐指数
1
解决办法
1356
查看次数

Javascript继承 - "this"关键字失去绑定?

我试图在Javascript中学习更高级的继承方法,并且无法弄清楚为什么我的继承对象在Eloquent Javascript的示例代码中丢失了它的"this"关键字绑定.

我试过调用take()函数,例如使用:

lantern.take(); // alerts you can not lift
Item.take.call(lantern, "the brass lantern"); // alerts you can not lift
lantern.take.call(this, "the brass lantern"); // alerts you can not lift
Run Code Online (Sandbox Code Playgroud)

这两个都没有把this.name绑在灯笼上吗?在我调用对象原型中定义的方法的方法中,我缺少什么/不理解?谢谢.

function forEachIn(object, action) {
  for (var property in object) {
    if (object.hasOwnProperty(property))
      action(property, object[property]);
  }
}

function clone(object) {
  function OneShotConstructor(){}
  OneShotConstructor.prototype = object;
  return new OneShotConstructor();
}

Object.prototype.create = function() {
  var object = clone(this);
  if (typeof object.construct == "function")
    object.construct.apply(object, arguments);
  return object;
};

Object.prototype.extend = function(properties) …
Run Code Online (Sandbox Code Playgroud)

javascript inheritance prototype this

2
推荐指数
1
解决办法
248
查看次数