我写了一篇JS perf,表明通过数量减少解析数字中的数字比通过字符串评估(对于排序任务)更快.我发现虽然幅度减少算法对更长的数字(不是每个数字,但总共)执行操作更快,即使它应该为更长的数字循环更多次.它发生在OS X上的Chrome,Safari和Firefox中(尚未测试其他操作系统).
任何想法这里发生了什么?
这是perf:http://jsperf.com/get-digits-from-integer
编辑这里是一个perf,显示不同数字8,16,32,64和128的差异.只有8位数字比预期的慢,16位数,性能随着数字变长而减慢.http://jsperf.com/get-digits-from-integer/3
这是有问题的功能:
function getDigitsByMagnitudeReduction(num){
var digits = [];
while (num > 0){
digits.push(num % 10);
num = (num / 10) >> 0;
}
return digits.reverse();
}
Run Code Online (Sandbox Code Playgroud) 我的 BackboneJS 模板中有以下代码(使用 Underscore 渲染)
<input type="radio" class="isMale" id="isMaleVolunteersNo"
<%= model.attributes.isMaleVolunteers == undefined ||
model.attributes.isMaleVolunteers == null ||
model.attributes.isMaleVolunteers == 'N' ? 'checked' : ''
%>
name="isMaleVolunteers" value="false" />
<label for="isMaleVolunteersNo" style="display:inline">No</label>
Run Code Online (Sandbox Code Playgroud)
当模型属性 isMaleVolunteers 未定义时,我希望默认选中“否”。
我尝试了以下(带括号)...仍然不起作用;
<input type="radio" class="isMale" id="isMaleVolunteersNo"
<%= (model.attributes.isMaleVolunteers == undefined ||
model.attributes.isMaleVolunteers == null ||
model.attributes.isMaleVolunteers == 'N') ? 'checked' : ''
%>
name="isMaleVolunteers" value="false" />
<label for="isMaleVolunteersNo" style="display:inline">No</label>
Run Code Online (Sandbox Code Playgroud)
但上面的代码不起作用。代码有问题吗?
javascript backbone.js underscore.js underscore.js-templating