我试着通过以下jsperf来探测加号(+)转换比parseInt更快,结果让我感到惊讶:
准备代码
<script>
Benchmark.prototype.setup = function() {
var x = "5555";
};
</script>
Run Code Online (Sandbox Code Playgroud)
解析样本
var y = parseInt(x); //<---80 million loops
Run Code Online (Sandbox Code Playgroud)
加样品
var y = +x; //<--- 33 million loops
Run Code Online (Sandbox Code Playgroud)
原因是因为我使用"Benchmark.prototype.setup"来声明我的变量,但我不明白为什么
见第二个例子:
<script>
Benchmark.prototype.setup = function() {
x = "5555";
};
</script>
Run Code Online (Sandbox Code Playgroud)
解析样本
var y = parseInt(x); //<---89 million loops
Run Code Online (Sandbox Code Playgroud)
加样品
var y = +x; //<--- 633 million loops
Run Code Online (Sandbox Code Playgroud)
有人能解释一下结果吗?
谢谢
有人可以在下面的代码中解释我,为什么当我做o = {}时,对象没有被重置?
var funky = function (o) {
o.z = null;
o.a = "aaa";
o = {};
};
var x = { z: "zzz"};
funky(x);
console.log(x);
Run Code Online (Sandbox Code Playgroud) 我在提交表单后尝试获取自己的viewmodel,我收到以下错误:"无法将'System.String []'类型的对象强制转换为'System.String'"
这是我的代码:
视图模式:
public class SoftwarePackages
{
public string[] PermissionsList { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
ASPX
<%: Html.ListBoxFor(model => model.PermissionsList, new List<SelectListItem>(), new { size = 10 })%>
Run Code Online (Sandbox Code Playgroud)
调节器
[HttpPost]
public ActionResult Index(SoftwarePackages softwarePackages)
{
code...code...code
}
Run Code Online (Sandbox Code Playgroud)
问题是什么?
谢谢
zurdoIL