小编Pro*_*one的帖子

Javascript调用和应用函数只调用第一个参数?

编辑:由于我的误解,这个问题被问到了.请谨慎行事,因为阅读它可能会浪费您的时间.

我想call并且apply会在给定一组参数的情况下执行函数,但是我的测试结果令人困惑.看我的测试代码:

window.z = 0;
(function(){++(window.z)}).call(this, 1, 2, 3)
Run Code Online (Sandbox Code Playgroud)

我希望z在执行后会是3.但是,z是1.

(function(){++(window.z)}).apply(this, [1, 2, 3])
Run Code Online (Sandbox Code Playgroud)

同样在这里.z == 1;
我也试过简单地记录输入参数:

var x = function(y){console.log(y);}
x.call(this, 1, 2, 3);
Run Code Online (Sandbox Code Playgroud)

结果?仅记录1.
我在这做错了什么?

(使用Firebug在Chrome和Firefox中测试过.)

javascript call apply

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

LINQ任何失败?

是否有任何理由说明Any以下代码中的函数可能会失败?

var orders = db.Order.Where(order => order.Item.Any());
foreach (var order in orders)
{
    var first = order.Item.First();  // NullReferenceException thrown here: order.Item == null
}
Run Code Online (Sandbox Code Playgroud)

也许我只是在这里误解了一些东西,但在我看来,order.Item由于之前的Any陈述,我永远不应该是空的.

编辑:如果我确保表达式被评估而不是通过放置ToList那个延迟,我得到另一个异常,因为order.Item序列没有项目,这也让我感到困惑:

var orders = db.Order.Where(order => order.Item.Any()).ToList();
foreach (var order in orders)
{
    var first = order.Item.First();  // System.InvalidOperationException thrown here: order.Item.Count == 0
}
Run Code Online (Sandbox Code Playgroud)

c# linq any

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

是否需要引用变量才能包含在闭包中?

在创建闭包时(在Javascript或C#中),闭包创建时范围内的所有变量是否"封闭"在其中?或者只是新创建的方法中引用的变量?

示例C#代码:

private void Main() {
    var referenced = 1;
    var notReferenced = 2;  // Will this be enclosed?
    new int[1].Select(x => referenced);
}
Run Code Online (Sandbox Code Playgroud)

示例Javascript代码:

    var referenced = 1;
    var notReferenced = 2;  // Will this be enclosed?
    var func = function () {
        alert(referenced);
    }
Run Code Online (Sandbox Code Playgroud)

(通过使用Javascript闭包创建循环引用来阅读IE中的内存泄漏时,问题来了.http
://jibbering.com/faq/notes/closures/#clMem)注意:带有"封闭"一词,我的意思是MSDN会叫"被抓".(http://msdn.microsoft.com/en-us/library/bb397687.aspx)

javascript c# closures

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

删除电子邮件地址中的无效字符

我正在尝试找出如何删除电子邮件地址中的所有无效字符.

例如:email ="taeo͝'; st@yy.com"(.是电子邮件字符),结果应为:email ="taest@yy.com"

我使用以下电子邮件模式:

String email_pattern = "^[^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@"+ "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$]";

String modifiedEmail = email.replaceAll(email_pattern,"");
Run Code Online (Sandbox Code Playgroud)

但上面的代码给出了结果:email ="aest@yy.com",但预计"taest@yy.com"

任何建议或更好的方法将不胜感激.

java regex string email

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

如何在Chrome扩展程序的内容脚本之间重复使用代码?

我正在开发具有许多内容脚本的Chrome扩展程序。它们大多数使用相同的功能,因此我想在内容脚本之间共享这些功能。但是我似乎不知道该怎么做。
内容脚本是沙盒化的,因此无法访问同一window对象。似乎应该有一个明显的解决方案,但我一直找不到。

javascript google-chrome-extension

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

在PHP中分配一个布尔值

为什么这个带有布尔值的变量赋值失败?

$result = 1 == 2;
Run Code Online (Sandbox Code Playgroud)

结果:$ result为空.(期待false.)
我甚至试过这个:

$result = 1 == 2 ? true : false;
Run Code Online (Sandbox Code Playgroud)

结果:$ result为空.
这在PHP中是不可能的吗?


编辑以供将来参考:$result事实上false在两种情况下; 我只是假设不然,因为我通过"回声"来检查它的价值.(看评论.)

php

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

标签 统计

javascript ×3

c# ×2

any ×1

apply ×1

call ×1

closures ×1

email ×1

google-chrome-extension ×1

java ×1

linq ×1

php ×1

regex ×1

string ×1