小编Jer*_*art的帖子

从javascript函数返回`undefined`或`null`更好吗?

我有一个我写的功能,基本上看起来像这样:

function getNextCard(searchTerms) {
  // Setup Some Variables

  // Do a bunch of logic to pick the next card based on termed passed through what I'll call here as 'searchTerms' all of this logic is omitted because it's not important for my question.
  // ...

  // If we find a next card to give, than give it
  if (nextCardFound)
    return nextCardFound;

  // Otherwise - I'm returning undefined
  return undefined;
}
Run Code Online (Sandbox Code Playgroud)

问题:在这里返回"null"会更好吗?

我可以通过我想要的任何东西 - 显然......我只是不确定什么是最好用的东西.

调用此函数的代码知道如何处理未定义的(除非出现可怕的错误,否则实际上不会真正发生)

我问这个问题的原因是我听到某些地方听起来像"不要将未定义的变量分配给变量"或其他东西 - 它会使调试变得更难.所以,我可以看到null传回来的事实告诉我返回工作 …

javascript null return function undefined

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

使用GD for iPhone OS 4.1编译PHP

目标:

有一个工作版本的PHP与GD库工作在iPod Touch第四代.

状态:

PHP正在开发没有GD的iPod(lighttpd + PHP 5.2.8 + sqlite3).

当试图在iPod上编译PHP时,我得到了这个错误:http://pastebin.com/kUmgq70G

拟议的解决方案:

任何人都可以指出我如何使用GD编译PHP,然后将其打包成一个.deb文件供其他人使用吗?


我认为最好的情况是编译包含并启用GD库的最新版本的PHP.第二好的方法是将GD作为模块进行编译,然后将其安装到Cydia提供的当前可用的PHP中.但是要编译GD,你必须使用用于创建Cydia提供的php_5.2.8-3_iphoneos-arm.deb的SAME源来实现这一点 - 我认为将来每个人编译一个更容易和更安全已启用GD的新PHP,然后将其打包为.deb


以下是我目前安装的PHP版本的phpinfo:系统:

Darwin iPod-Touch 10.3.1 Darwin Kernel Version 10.3.1: Wed Aug 4 22:35:51 PDT 2010; root:xnu-1504.55.33~10/RELEASE_ARM_S5L8930X iPod4,1
Run Code Online (Sandbox Code Playgroud)

建造日期:

Jan 25 2009 02:55:42
Run Code Online (Sandbox Code Playgroud)

配置命令:

'./configure' '--build=x86_64-unknown-linux-gnu' '--host=arm-apple-darwin9' '--enable-static=no' '--enable-shared=yes' '--prefix=/usr' '--localstatedir=/var/cache/php' '--with-iconv=/usr/arm-apple-darwin9/usr' '--with-curl=/home/dat/apl/tel/dest/iphoneos-arm/curl/usr' '--enable-fastcgi'
Run Code Online (Sandbox Code Playgroud)

以下是来自Cydia的回购的包裹信息:

Package: php
Version: 5.2.8-3
Architecture: iphoneos-arm
Maintainer: Jay Freeman (saurik) <saurik@saurik.com>
Installed-Size: 14492
Depends: curl, libxml2
Filename: debs/php_5.2.8-3_iphoneos-arm.deb
Size: 4626280
MD5sum: dbb30ea608945a5d45de02df74df71b0
Section: Development
Priority: optional …
Run Code Online (Sandbox Code Playgroud)

php iphone gd compilation ios4

12
推荐指数
1
解决办法
2139
查看次数

测量四个类似Javascript函数之间的CPU负载差异

为什么这对我很重要

我有一个网站,我需要运行一个倒数计时器来向人们展示他们完成一个动作需要多少时间.

这个计时器将运行几天,可能只是使用MomentJS来说出MomentJS to()功能中的"4天内" .

然而,当我们还剩一个小时的时候,我将按分钟计时器切换到倒计时,最终当分钟变得足够低时,我将涉及一个秒计时器.当我们到最后几分钟时,我甚至会显示几毫秒.


问题

几乎有两种主要技术可以为倒数计时器设置动画.

  • setInterval()
  • requestAnimationFrame()

好吧,我立刻注意到这个requestAnimationFrame()方法对眼睛更加平滑,效果很好 - 尤其是当我显示毫秒时.然而,当我注意到我可怜的电脑开始变得温暖时,不久.所有这些"动画"都会给我的CPU造成很大负担.我尝试使用CPU监视器,并查看了看看我的CPU有多少负载的方法,但总的来说,我找不到一个工具,可以让我清楚地了解我的小倒计时器是什么样的CPU负载.使用.

所以,我决定找到一种限制 FPS的方法,看看是否会减少我的问题.是的,确实如此.如果您同时使用setTimeout(),则requestAnimationFrame()可以在调用下一个功能之前设置等待时间.

这提出了一个问题,如果你正在使用setTimeout()- 你为什么不使用setInterval()并忘记requestAnimationFrame()给你的额外优化?

我做了一些环顾四周,找到了另一种方法,只需检查自上次requestAnimationFrame()调用函数以来是否已经过了正确的间隔时间.我对这段代码的工作方式做了一些优化,最后得到了我试图在下面测量的两个函数之一.

最后,我真的希望有一个更清晰的方法来衡量这一点 - 因为我的mac上的活动监视器不是提供准确读数的可靠工具 - 而且我找不到一种方法来测量代码我跑了.

Chrome有一些工具,分析器和时间线 - 这些都非常有用,但它们没有给我我正在寻找的指标 - CPU负载.


代码:

这里有四个代码片段,它们完全相同 - 所有这些代码片段都使用:

  • MomentJS
  • CountdownJS
  • jQuery的

代码是100%相同,唯一的区别是我如何限制动画的FPS.

我想找到一种方法来测量(尽可能精确地)测量四个函数之间的差异,即它们所承受的CPU负载量.然后我想改变FPS,看看我是否可以为我的应用程序找到可接受的负载,然后我可以在不同的计时器阶段找到最佳点 - 适量的FPS.

技术1 - setTimeout()

var now = moment(); // new Date().getTime();
var then = moment().add(60, 'seconds'); // new Date(now + 60 * 1000);

$(".now").text(moment(now).format('h:mm:ss a'));
$(".then").text(moment(then).format('h:mm:ss …
Run Code Online (Sandbox Code Playgroud)

javascript performance settimeout setinterval requestanimationframe

8
推荐指数
1
解决办法
722
查看次数

用于scss的vim折叠语法

你有什么技术可以折叠scss代码?Pope先生在他的语法文件中定义了这个问题:https: //github.com/tpope/vim-haml

syntax vim sass

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

使用序列号在Javascript中映射数组

以下代码:

let myArray = Array.apply(null, {length: 10}).map(Number.call, Number);
Run Code Online (Sandbox Code Playgroud)

创建以下数组:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Run Code Online (Sandbox Code Playgroud)

我只是不明白为什么.我无法在互联网上找到解释此行为的任何内容.有谁知道为什么这样做的方式呢?也许是一些文档的链接?

javascript arrays numbers map-function

5
推荐指数
3
解决办法
2324
查看次数

如何使用 git-bash 在 Windows 10 上安装 GNU Parallel

有没有人能够通过 git-bash 在 Windows 10 上成功使用 GNU Parallel? 是否可以?- 如果是这样,如何?


背景: 我在安装和使用 GNU Parallel 时遇到问题,这让我开始思考 -也许 git-bash 阻碍了我?我敢肯定,如果我通过 WSL 安装 Ubuntu,那么运行 GNU Parallel 不会有任何问题。但我想知道我是否可以先在 git-bash 中做到这一点。

unix windows bash git-bash gnu-parallel

4
推荐指数
1
解决办法
4367
查看次数

如何在git revert之后返回git分支

因此,由于我的代码存在根本问题,我最终不得不更改项目的整个目录树 - 或者我认为.所以我在重大改变之前做了一个提交,然后在做出我不需要的更改后意识到.所以我表演了

git checkout ##SHA##
Run Code Online (Sandbox Code Playgroud)

我能够让整个项目按照应有的方式运行,但现在我遇到了另一个问题.我不再在我工作的分支机构中签出.如何保留我现在拥有的代码并回到分支机构工作?

git branch -a
Run Code Online (Sandbox Code Playgroud)

说我在

* (no branch)
Run Code Online (Sandbox Code Playgroud)

任何人都知道我可以做什么,而不只是建立一个新的分支并删除旧的分支?

git

3
推荐指数
1
解决办法
970
查看次数

"救援例外=> e"中的"=>"是做什么的?

举个例子:

def method_of_doom
my_string = "I sense impending doom."
my_string.ah_ha_i_called_a_nonexistent_method
rescue NoMethodError => e:
puts "PROBLEM: " + e.to_s
rescue Exception:
puts "Uhh...there's a problem with that there method."
end
Run Code Online (Sandbox Code Playgroud)

在它说:

rescue NoMethodError => e:
Run Code Online (Sandbox Code Playgroud)

什么是'=>'做什么?

它与这种用法有何不同:

module FighterValues
BAMBOO_HEAD = { 'life' => 120, 'hit' => 9 }
DEATH = { 'life' => 90, 'hit' => 13 }
KOALA = { 'life' => 100, 'hit' => 10 }
CHUCK_NORRIS = { 'life' => 60000, 'hit' => 99999999 }

def …
Run Code Online (Sandbox Code Playgroud)

ruby syntax rescue hashrocket

3
推荐指数
2
解决办法
812
查看次数

MacVim - surround.vim - 视觉"cs"只删除选择

我安装了MacPorts的MacPorts版本.我的Vim配置包括pathogen.vim和最新版本的surround.vim的Git克隆.当我README.markdown从surround.vim代码打开文件时,选择Hello World里面"的并尝试输入cs"',c键击只是删除Hello World.

有谁知道为什么这不起作用?

当我打字S"Hello World突出显示它周围很好.我甚至尝试制作一个新文件 - 围绕着某些东西,然后改变我所包围的东西 - 但它根本就没有用.每次按下c它都会删除突出显示的所有内容.

vim macvim

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

zsh 命令行上的 for 循环:在“完成”附近解析错误

我不明白为什么我会收到这个错误?这对我来说似乎是很好的语法。

$ for f in todo/family/* ; echo "$f" ; done
zsh: parse error near `done'
Run Code Online (Sandbox Code Playgroud)

第一个$是 PS1——这是在常规的“命令行”上——而不是在文件中。

bash command-line for-loop zsh parse-error

0
推荐指数
1
解决办法
1万
查看次数