我不确定在多次使用时哪种方法更快,需要测试许多字符串变量。
在检查字符串是否只包含空格时,哪种方法更快?
if (str.trim().length > 0) {
}
或者
if (str.trim() !== '') {
}
我不确定在多次使用时哪种方法更快,需要测试许多字符串变量。
在检查字符串是否只包含空格时,哪种方法更快?
if (str.trim().length > 0) {
}
或者
if (str.trim() !== '') {
}
好的,为什么不测试一下呢?http://jsperf.com/empty-string-comparison2
就每秒计算次数而言,在Chromium上它们的差异不到1%。除非您每秒要测试数百万个字符串,否则不必担心。
if (str.match(/^\s*$/))
/^\s*$/.test(str)
,对吧?毕竟返回布尔值比返回结果数组更快!;) - kojirostring = " l l l sfsf __ ";
d = new Date().getTime();
for(var i = 0; i < 900000; i++){
if (string.trim().length > 0) continue;
}
d1 = new Date().getTime() - d;
alert(d1);
d = new Date().getTime();
for(var i = 0; i < 900000; i++){
if (string.trim() !== '') continue;
}
d1 = new Date().getTime() - d;
alert(d1);
d = new Date().getTime();
for(var i = 0; i < 900000; i++){
if (string.match(/^\s*$/)) continue;
}
d1 = new Date().getTime() - d;
alert(d1);
我认为字符串长度比较与两个字符串的比较相比更快。
JSFiddle: http://jsfiddle.net/pja77gzp/
JSFiddle是一个在线代码编辑器和调试工具,可以用于编写HTML、CSS和JavaScript代码,并在浏览器中实时预览。以上链接是一个示例JSFiddle页面的链接。<script>
var s1 = ' ';
var s2 = ' ';
var benchmarkCount = 10000000;
function testStringComparison() {
var t = new Date();
var i = 0;
for (var i = 0; i < benchmarkCount; i++) {
if (s1.trim().length == s2.trim().length) {
i++;
}
}
t = (new Date()) - t;
document.writeln("testStringComparison completed");
document.writeln(t);
}
function testStringLenght() {
var t = new Date();
var i = 0;
for (var i = 0; i < benchmarkCount; i++) {
if (s1.trim() == s1.trim()) {
i++;
}
}
t = (new Date()) - t;
document.writeln("testStringLenght completed");
document.writeln(t);
}
function startBenchmark() {
testStringComparison();
testStringLenght();
}
setTimeout(startBenchmark, 1000);
</script>