小编Mal*_*lio的帖子

你如何在JavaScript中测试NaN?

我有一个变量x,我想测试x是否设置为NaN.我怎么做?

我的第一直觉可能就是测试它,就像这样:

if (x === NaN) {  ...
Run Code Online (Sandbox Code Playgroud)

傻兔子,不,这太容易了.NaN在SQL中就像NULL,它不等于任何东西,甚至本身.

但是看,有一个叫做的函数isNaN()- 也许会这样做!

不,据我所知,isNaN()完全没有价值.

例如,isNaN([""])正确返回false,但isNaN(["."])返回true.你不想知道我是如何了解这个缺陷的.

我该怎么做呢?

事实证明,我的问题与问题重复,但所选答案是错误的.将正确的答案有20%之多upvotes.

javascript nan

39
推荐指数
2
解决办法
4万
查看次数

为什么变量不能是稳定的标识符?

下列

def mMatch(s: String) = {
    var target: String = "a"
    s match {
        case `target` => println("It was " + target)
        case _ => println("It was something else")
    }
}
Run Code Online (Sandbox Code Playgroud)

不编译:

错误:需要稳定的标识符,但找到了目标.case target=> println("它是"+目标)

为什么Scala需要val不是a var.我猜"因为"是一个可以接受的答案,但我觉得我错过了更深层次的原因.

scala

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

Python是"与"monadic?

像我之前的许多愚蠢的先驱一样,我正在努力穿越理解Monads的无轨荒地.

我仍然蹒跚而行,但我不禁注意到Python的with声明具有某种类似monad的质量.考虑这个片段:

with open(input_filename, 'r') as f:
   for line in f:
       process(line)
Run Code Online (Sandbox Code Playgroud)

open()调用视为"单元",将块本身视为"绑定".实际的monad没有暴露(呃,除非f是monad),但模式就在那里.不是吗?或者我只是误将所有FP误认为是monadry?或者它只是凌晨3点,似乎有什么可信的?

一个相关的问题:如果我们有monad,我们是否需要例外?

在上面的片段中,I/O中的任何故障都可以从代码中隐藏.磁盘损坏,缺少指定文件和空文件都可以被视为相同.因此不需要可见的IO异常.

当然,Scala的Option类型类已经消除了可怕的Null Pointer Exception.如果你重新考虑作为Monads的数字(有NaNDivideByZero作为特殊情况)......

就像我说的,早上3点.

python monads functional-programming

35
推荐指数
3
解决办法
3159
查看次数

CORS无法在Chrome上运行

我在服务器上设置了跨源资源共享(Jetty使用CrossOriginFilter),它在IE8和Firefox上运行良好.在Chrome上,它只是......没有.

  $.ajax({ url : crossOriginURL,
    type : "GET",
    error : function(req, message) {
        alert(message);
    },
    dataType :  "json" } );
Run Code Online (Sandbox Code Playgroud)

调用错误函数,并显示有用的消息"error".它似乎正在提出请求,但没有任何你期望的标题.如果URL来自同一个来源,它可以正常工作.

javascript jquery google-chrome cors

30
推荐指数
3
解决办法
6万
查看次数

为什么在JavaScript中使用回调,它的优点是什么?

有人可以解释一下,为什么我们在JavaScript中使用回调?我找到了示例,但它们可以通过使用普通函数来实现.使用它有什么好处?我得到了"如何"使用它的答案,而不是"为什么和何时"我们需要使用它.

通常,我发现它在AJAX中使用.在...上httpRequest.onreadystatechange.这类似于Java的多线程吗?响应的听众如何以及在哪里?异步编程是否类似于多线程?

在以下代码中,控制流程如何:

function some_function(arg1, arg2, callback) {
  var my_number = Math.ceil(Math.random() * (arg1 - arg2) + arg2);
  callback(my_number);
  some_different_function_not_callback(arg1);
}
some_function(5, 15, function(num) {
   console.log("callback called! " + num);
});
Run Code Online (Sandbox Code Playgroud)

来自JQuery网站:

关于回调的特殊之处在于,在"父"之后出现的函数可以在回调执行之前执行"(参考:http://docs.jquery.com/Tutorials:How_jQuery_Works)

有人可以用一个例子向我解释这一行吗?

javascript jquery

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

通过给定的泛型类型Scala获取类的伴随对象

我想要做的是创建一个函数,它将采用泛型类并在其中使用静态方法(对不起Java语言,我的意思是它的伴随对象的方法).

trait Worker {def doSth: Unit}

class Base

object Base extends Worker

// this actually wouldn't work, just to show what I'm trying to achieve
def callSthStatic[T that companion object is <: Worker](implicit m: Manifest[T]) {
  // here I want to call T.doSth (on T object)
  m.getMagicallyCompanionObject.doSth
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

types scala class object implicit

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

FB.getLoginStatus没有调用它的回调

标题真的说明了一切.在某些(未确定的)条件下,FB.getLoginStatus()只是停止工作,不会调用我给它的回调.我发现的唯一有趣的线索是

  • FB.Auth._loadState停留在"加载" - 任何应该让它点击"加载"的事情都没有发生
  • alert()打电话这样的轻微延迟往往会让它开始工作

任何关于甚至如何调查此欢迎的提示.

facebook fbjs

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

我怎么样*要使用scala.collection.immutable.Queue?

我有我认为处理队列最常见的情况.我将读取队列的前面,对元素执行操作(这可能会导致更多元素添加到队列中),然后循环直到队列为空.

  1. 我的第一直觉是foreach,但是没有,显然一个队列(甚至是一个可变的队列)是严格的,并且当迭代开始时,foreach循环遍历队列中的所有元素.
  2. 我无法弄清楚while循环的语法.

你会认为它会是这样的

while (!q.isEmpty) {
   var (e, q) = q.dequeue
   ... }
Run Code Online (Sandbox Code Playgroud)

会工作,除了我重新宣布q.这确实有效:

while (!q.isEmpty) {
   var (e, q1) = q.dequeue
   q = q1
   ... }
Run Code Online (Sandbox Code Playgroud)

但男人,看起来不对 ......

scala

22
推荐指数
3
解决办法
8289
查看次数

直接从浏览器执行JavaScript文件

这听起来像是一个琐事问题,但我真的需要知道.

如果您将HTML文件的URL放在浏览器的位置栏中,它将呈现该HTML.这是浏览器的全部目的.

如果你给它一个JPG,或一个SWF,甚至PDF,它将为这些数据类型做正确的事情.

但是,如果您给它一个JavaScript文件的URL,它将显示该文件的文本.我想要的是直接执行该文件.

现在,我知道如果你使用javascript:协议,它将执行URL 的文本,但这不是我需要的.

我可以将URL指向由单个<script>标记组成的HTML文件,而该标记又指向JavaScript文件,但出于我自己的隐藏原因,我不能这样做.

如果文件http://example.com/file.js完全由

 alert("it ran");
Run Code Online (Sandbox Code Playgroud)

我把那个URL放在位置栏中,我希望"它跑"以弹出警报.

我怀疑这是可能的,但我希望 - 反对 - 希望有一个标题或MIME类型或类似的东西我可以设置并奇迹般地实现这一点.

javascript browser

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

基本的Scala OOP问题 - 通过引用传递?

我有点难过这个问题是多么愚蠢而且有严重的思维空白,但我想我还是会问.

我有一个对象Foo,有几个字段.我想要一个可以更改其任何字段的方法,具体取决于作为参数传入的字段.像这样:

class Foo {
    var x = 0
    var y = 0
}

class Bar {
    def changeFooField(field : Int) = {
        field = 1        
    }
}
Run Code Online (Sandbox Code Playgroud)

我不能这样使用吗?:

changeFooField(foo.x)
Run Code Online (Sandbox Code Playgroud)

如果没有,我该如何做到这一点?

oop scala

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